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
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
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.
Importante
Argomenti
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 filessl.conf
del server Apache, come descritto in Disattivazione per i server Apache SSLv3. - Nginx con Unicorn
-
Aggiungi una direttiva
ssl_protocols
esplicita al filenginx.conf
del server Nginx. Per disabilitarloSSLv3, sovrascrivi il file modellonginx.conf.erb
del ricettario nginxintegrato, 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 server
nginx.conf
. HTTPSPer 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"]["
, dove appshortname
"]["database"]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
-
Crea uno stack con un livello Rails App Server con Apache/Passenger come stack Rails, aggiungi un'istanza 24/7 al layer e avvialo.
-
Una volta che l'istanza è online, aggiungere un'app allo stack e specificare le impostazioni seguenti:
-
Name (Nome) - Il nome preferito. Nell'esempio viene utilizzato
PhotoPoll
.AWS OpsWorks Stacks utilizza questo nome per scopi di visualizzazione e genera un nome breve per uso interno e per identificare l'app negli attributi di configurazione e distribuzione dello stack. Ad esempio, il nome PhotoPoll breve è photopoll.
-
App type (Tipo di app) - Ruby on Rails.
-
Rails environment (Ambiente Rails) - Gli ambienti disponibili sono determinati dall'applicazione.
L'app di esempio ne ha tre:
development
,test
eproduction
. In questo esempio impostare l'ambiente sudevelopment
. Vedere il codice di esempio per le descrizioni di ciascun ambiente. -
Tipo di repository: qualsiasi tipo di repository supportato. Specificare
Git
per questo esempio -
Repository URL: il repository da cui deve essere distribuito il codice.
Per questo esempio, imposta su. URL
git://github.com/awslabs/opsworks-demo-rails-photo-share-app
Utilizzare i valori predefiniti delle impostazioni restanti e fare clic su Add App (Aggiungi app) per creare l'app.
-
-
Distribuisci l'app sull'istanza di Rails App Server.
-
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: