Server di app Rails AWS OpsWorks Stacks Layer - AWS OpsWorks

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Server di app Rails AWS OpsWorks Stacks Layer

Importante

Il AWS OpsWorks Stacks il servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disattivato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il AWS Support Squadra su AWS Re:post o tramite AWS Supporto Premium.

Nota

Questo livello è disponibile solo per stack basati su Linux.

Il livello Rails App Server è un AWS OpsWorks Livello Stacks che fornisce un modello per le istanze che funzionano come server di applicazioni Rails.

Installation (Installazione): AWS OpsWorks Stacks utilizza il programma di installazione dei pacchetti dell'istanza per installare i pacchetti server nelle loro posizioni predefinite. Per ulteriori informazioni sull'installazione di Apache/Passenger, consulta Phusion Passenger. Per ulteriori informazioni sulla registrazione, consulta la pagina relativa ai file di log. Per ulteriori informazioni sull'installazione di Nginx/Unicorn, consulta Unicorn.

La pagina Add Layer (Aggiungi livello) include le opzioni di configurazione facoltative seguenti.

Ruby Version (Versione Ruby)

La versione di Ruby che verrà utilizzata dalle applicazioni. Il valore predefinito è 2.3.

Puoi anche specificare la tua versione preferita di Ruby sostituendo l'attributo [:opsworks][:ruby_version].

Nota

AWS OpsWorks Stacks installa un pacchetto Ruby separato che deve essere utilizzato dalle ricette e dall'agent dell'istanza. Per ulteriori informazioni, consulta Versioni di Ruby.

Stack Rails

Lo stack Rails predefinito è Apache2 con Phusion Passenger. Puoi utilizzare anche Nginx con Unicorn.

Nota

Se utilizzi Nginx e Unicorn, devi aggiungere il gem unicorn al Gemfile dell'app, come illustrato nell'esempio seguente:

source 'https://rubygems.org' gem 'rails', '3.2.15' ... # Use unicorn as the app server gem 'unicorn' ...
Passenger Version (Versione Passenger)

Se hai specificato Apache2/Passenger, devi specificare la versione di Passenger. Il valore predefinito è 5.0.28.

Rubygems Version (Versione Rubygems)

La versione predefinita di Rubygems è la 2.5.1.

Install and Manage Bundler (Installa e gestisci Bundler)

Consente di scegliere se installare e gestire Bundler. Il valore predefinito è Yes (Sì).

Bundler version (Versione Bundler)

La versione predefinita di Bundler è la 1.12.5.

Gruppi di sicurezza personalizzati

Questa impostazione viene visualizzata se si sceglie di non associare automaticamente un componente integrato AWS OpsWorks Colloca il gruppo di sicurezza con i tuoi livelli. Devi specificare il gruppo di sicurezza da associare al livello. Per ulteriori informazioni, consulta Creare un nuovo stack.

Elastic Load Balancer

Puoi collegare un load balancer Elastic Load Balancing alle istanze del layer.

È possibile modificare alcune impostazioni di configurazione utilizzando un file di attributi personalizzato JSON o personalizzato. Per ulteriori informazioni, consulta Sostituzione degli attributi. Per un elenco degli attributi Apache, Nginx, Passenger e Unicorn Phusion che possono essere sostituiti, consulta Attributi dei libri di ricette predefiniti.

Disabilitazione per i server Rails SSLv3

Per disabilitarla SSLv3 per i server Rails, aggiorna l'impostazione della versione Ruby del layer alla 2.1 o superiore, che installa Ruby 2.1.4 o superiore come versione utilizzata dalle applicazioni.

  • Aggiorna l'impostazione Ruby Version (Versione Ruby) del livello su 2.1 o versione successiva.

  • Aggiorna il file di configurazione per il tuo stack Rails, come segue.

Apache con Phusion Passenger

Aggiorna l'impostazione SSLProtocol nel file ssl.conf del server Apache, come descritto in Disattivazione per i server Apache SSLv3.

Nginx con Unicorn

Aggiungi una direttiva ssl_protocols esplicita al file nginx.conf del server Nginx. Per disabilitarloSSLv3, sovrascrivi il file modello nginx.conf.erb del ricettario nginx integrato, che le ricette di configurazione del livello Rails App Server utilizzano per nginx.conf creare, e aggiungi la seguente direttiva:

ssl_protocols TLSv1.2;

Per ulteriori informazioni su come configurare, consulta Configurazione dei servernginx.conf. HTTPS Per ulteriori informazioni su come sostituire un modello integrato, consulta Utilizzo di modelli personalizzati .

Connessione a un database

Quando distribuisci un'app, AWS OpsWorks Stacks crea un nuovo database.yml file utilizzando le informazioni degli attributi dell'deployapp. Se colleghi un'RDSistanza My SQL o Amazon all'app, AWS OpsWorks Stacks aggiunge le informazioni di connessione agli deploy attributi, in modo che contengano database.yml automaticamente i dati di connessione corretti.

Se un'app non dispone di un database allegato, per impostazione predefinita, AWS OpsWorks Stacks non aggiunge alcuna informazione di connessione agli deploy attributi e non creadatabase.yml. Se desideri utilizzare un database diverso, puoi utilizzare custom JSON per aggiungere gli attributi del database agli deploy attributi dell'app con le informazioni di connessione. Gli attributi sono tutti sotto["deploy"]["appshortname"]["database"], dove appshortname è il nome breve dell'app, che AWS OpsWorks Stacks viene generato dal nome dell'app. I valori specificati in Custom hanno la JSON precedenza su qualsiasi impostazione predefinita. Per ulteriori informazioni, consulta Aggiunta di app.

AWS OpsWorks Stacks incorpora i seguenti valori di [:...][:database]attributo in. database.yml Gli attributi richiesti dipendono dal particolare database, ma è necessario disporre di un host attributo o AWS OpsWorks Gli stack non verranno creatidatabase.yml.

  • [:adapter] (String)— L'adattatore del database, ad esempiomysql.

  • [:database](String) — Il nome del database.

  • [:encoding](String) — La codifica, che in genere è impostata su. utf8

  • [:host](String) — L'hostURL, ad esempiorailsexample.cdlqlk5uwd0k.us-west-2.rds.amazonaws.com.

  • [:reconnect](Boolean) — Indica se l'applicazione deve riconnettersi se la connessione non esiste più.

  • [:password](String) — La password del database.

  • [:port] (numero). — Il numero di porta del database. Utilizza questo attributo per sostituire il numero di porta predefinito, che viene impostato dall'adattatore.

  • [:username](String) — Il nome utente del database.

L'esempio seguente mostra la personalizzazione JSON per un'app il cui nome breve è myapp.

{ "deploy" : { "myapp" : { "database" : { "adapter" : "adapter", "database" : "databasename", "host" : "host", "password" : "password", "port" : portnumber "reconnect" : true/false, "username" : "username" } } } }

Per informazioni su come specificare customJSON, consultaUtilizzo di Custom JSON. Per visualizzare il modello utilizzato per creare database.yml (database.yml.erb), vai al repository del libro di ricette integrato.

Distribuzione di app Ruby on Rails

Puoi distribuire app Ruby on Rails da uno qualsiasi dei repository supportati. Di seguito viene mostrato come distribuire un'app Ruby on Rails di esempio in un server che esegue uno stack Rails Apache/Passenger. Il codice di esempio è memorizzato in un GitHub archivio pubblico, ma la procedura di base è la stessa per gli altri repository supportati. Per ulteriori informazioni su come creare e distribuire app, consulta App. Per visualizzare il codice di esempio, che include commenti dettagliati, vai su -share-app. https://github.com/awslabs/ opsworks-demo-rails-photo

Per distribuire un'app Ruby on Rails da un repository GitHub
  1. Crea uno stack con un livello Rails App Server con Apache/Passenger come stack Rails, aggiungi un'istanza 24/7 al layer e avvialo.

  2. Una volta che l'istanza è online, aggiungere un'app allo stack e specificare le impostazioni seguenti:

    Utilizzare i valori predefiniti delle impostazioni restanti e fare clic su Add App (Aggiungi app) per creare l'app.

  3. Distribuisci l'app sull'istanza di Rails App Server.

  4. Al termine della distribuzione, vai alla pagina Istanze e fai clic sull'indirizzo IP pubblico dell'istanza di Rails App Server. Verrà visualizzato un codice analogo al seguente:

Congratulatory message for deploying first app with AWS OpsWorks, with stylized logo.