Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Rails App Server AWS OpsWorks Ebene stapelt
Wichtig
Das Tool AWS OpsWorks Stacks Der Dienst hat am 26. Mai 2024 das Ende seiner Lebensdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an den AWS Support Team ein AWS Re:post oder
Anmerkung
Diese Ebene steht nur für Linux-basierte Stacks zur Verfügung.
Die Rails App Server-Schicht ist eine AWS OpsWorks Stacks-Ebene, die einen Blueprint für Instanzen bereitstellt, die als Rails-Anwendungsserver fungieren.
Installation (Installation): AWS OpsWorks Stacks verwendet das Paketinstallationsprogramm der Instanz, um die Serverpakete an ihren Standardspeicherorten zu installieren. Weitere Informationen zur Apache/Passenger-Installation finden Sie unter Phusion Passenger
Auf der Seite Add Layer (Ebene hinzufügen) stehen folgende Konfigurationsoptionen zur Verfügung, die alle optional sind.
- Ruby-Version
-
Die von Ihren Anwendungen verwendete Ruby-Version. Der Standardwert ist 2.3.
Sie können auch Ihre bevorzugte Ruby-Version durch Überschreiben des [:opsworks][:ruby_version]-Attributs angeben.
Anmerkung
AWS OpsWorks Stacks installiert ein separates Ruby-Paket, das von Rezepten und dem Instanzagenten verwendet wird. Weitere Informationen finden Sie unter Ruby-Versionen.
- Rails-Stack
-
Der standardmäßige Rails-Stack lautet Apache2
mit Phusion Passenger . Sie können auch Nginx mit Unicorn verwenden. Anmerkung
Wenn Sie Ngnix und Unicorn verwenden, müssen Sie das Nginx- und Unicorn-Gem zur Gem-Datei Ihrer Anwendung hinzufügen, wie im folgenden Beispiel dargestellt:
source 'https://rubygems.org' gem 'rails', '3.2.15' ... # Use unicorn as the app server gem 'unicorn' ...
- Passenger-Version
-
Wenn Sie Apache2/Passenger angegeben haben, müssen Sie die Passenger-Version definieren. Der Standardwert ist 5.0.28.
- RubyGems-Version
-
Die standardmäßige Rubygems
-Version ist 2.5.1. - Bundler installieren und verwalten
-
Hier können Sie wählen, ob der Bundler
installiert werden soll. Der Standardwert ist Yes. - Bundler-Version
-
Die standardmäßige Bundler-Version ist 1.12.5.
- Benutzerdefinierte Sicherheitsgruppen
-
Diese Einstellung wird angezeigt, wenn Sie sich dafür entschieden haben, nicht automatisch ein integriertes Objekt zuzuordnen AWS OpsWorks Kombiniert die Sicherheitsgruppe mit Ihren Ebenen. Sie müssen die mit der Ebene zu verknüpfende Sicherheitsgruppe angeben. Weitere Informationen finden Sie unter Erstellen eines neuen Stacks.
- Elastic Load Balancer
-
Sie können einen Elastic Load Balancing Load Balancer an die Instances des Layers anhängen.
Sie können einige Konfigurationseinstellungen ändern, indem Sie eine benutzerdefinierte Datei JSON oder eine Datei mit benutzerdefinierten Attributen verwenden. Weitere Informationen finden Sie unter Überschreiben der Attribute. Eine Liste der überschreibbaren Apache-, Nginx-, Phusion Passenger- und Unicorn-Attribute finden Sie unter Integrierte Rezeptbuchattribute.
Wichtig
Wenn Ihre Ruby on Rails-Anwendung dies verwendetSSL, empfehlen wir Ihnen, diese nach Möglichkeit zu deaktivierenSSLv3, um die in CVE-2014-3566
Themen
Deaktivierung SSLv3 für Rails-Server
Um sie SSLv3 für Rails-Server zu deaktivieren, aktualisieren Sie die Ruby-Versionseinstellung des Layers auf 2.1 oder höher, wodurch Ruby 2.1.4 oder höher als die Version installiert wird, die Anwendungen verwenden.
-
Aktualisieren Sie die Ruby Version--Einstellung der Ebene auf 2.1 oder höher.
-
Aktualisieren Sie die Konfigurationsdatei für Ihren Rails-Stack folgendermaßen.
- Apache mit Phusion Passenger
-
Aktualisieren Sie die
SSLProtocol
-Einstellung in derssl.conf
-Datei des Apache-Servers, wie in Deaktivierung SSLv3 für Apache Server beschrieben. - Nginx mit Unicorn
-
Fügen Sie eine explizite
ssl_protocols
-Richtlinie zurnginx.conf
-Datei des Nginx-Servers hinzu. Um sie zu deaktivierenSSLv3, überschreiben Sie dienginx.conf.erb
Vorlagendatei des integrierten Nginx-Kochbuchs, die die Setup-Rezepte der Rails-App Server-Schicht zum Erstellen verwenden nginx.conf
, und fügen Sie die folgende Direktive hinzu:ssl_protocols TLSv1.2;
Weitere Informationen zur Konfiguration finden Sie unter Server konfigurieren
nginx.conf
. HTTPSWeitere Informationen zum Überschreiben einer integrierten Vorlage finden Sie unter Verwenden von benutzerdefinierten Vorlagen.
Verbinden mit einer Datenbank
Wenn Sie eine App bereitstellen, AWS OpsWorks Stacks erstellt eine neue database.yml
Datei mit Informationen aus den deployAttributen der App. Wenn Sie eine My SQL - oder RDS Amazon-Instance an die App anhängen, AWS OpsWorks Stacks fügt die Verbindungsinformationen zu den deploy
Attributen hinzu, sodass database.yml
automatisch die richtigen Verbindungsdaten enthalten sind.
Wenn eine App keine angehängte Datenbank hat, wird standardmäßig AWS OpsWorks Stacks fügt den deploy
Attributen keine Verbindungsinformationen hinzu und erstellt database.yml
auch keine. Wenn Sie eine andere Datenbank verwenden möchten, können Sie Benutzerdefiniert verwenden, JSON um den Attributen der App zusammen mit den Verbindungsinformationen deploy
Datenbankattribute hinzuzufügen. Die Attribute befinden sich alle unter["deploy"]["
, wo appshortname
"]["database"]appshortname
ist der Kurzname der App, welcher AWS OpsWorks Stacks wird aus dem Namen der App generiert. Die Werte, die Sie unter Benutzerdefiniert angeben, JSON überschreiben alle Standardeinstellungen. Weitere Informationen finden Sie unter Hinzufügen von Apps.
AWS OpsWorks Stacks integriert die folgenden [:...][:database]Attributwerte indatabase.yml
. Die erforderlichen Attribute hängen von der jeweiligen Datenbank ab, aber Sie müssen über ein host
Attribut verfügen oder AWS OpsWorks Stapel werden nicht erstelltdatabase.yml
.
-
[:adapter] (String)
— Der Datenbankadapter, wie z.mysql
-
[:database]
(String) — Der Datenbankname. -
[:encoding]
(String) — Die Kodierung, auf die normalerweise eingestellt istutf8
. -
[:host]
(String) — Der HostURL, z.railsexample.cdlqlk5uwd0k.us-west-2.rds.amazonaws.com
B. -
[:reconnect]
(Boolean) — Ob die Anwendung erneut eine Verbindung herstellen soll, wenn die Verbindung nicht mehr besteht. -
[:password]
(String) — Das Datenbankkennwort. -
[:port]
(Zahl). — Die Portnummer der Datenbank. Mit diesem Attribut können Sie die Standard-Portnummer überschreiben, der vom Adapter vorgegeben wird. -
[:username]
(String) — Der Datenbankbenutzername.
Das folgende Beispiel zeigt Benutzerdefiniert JSON für eine App, deren Kurzname myapp ist.
{ "deploy" : { "myapp" : { "database" : { "adapter" : "
adapter
", "database" : "databasename
", "host" : "host
", "password" : "password
", "port" :portnumber
"reconnect" :true/false
, "username" : "username
" } } } }
Informationen zur Angabe von Benutzerdefiniert finden Sie JSON unterBenutzerdefiniert verwenden JSON. Um die Vorlage zur Erstellung von database.yml
(database.yml.erb
) zu sehen, gehen Sie zu dem integrierten Rezeptbuch-Repository
Bereitstellen von Ruby on Rails-Anwendungen
Sie können Ruby on Rails-Anwendungen aus einem unterstützten Repository bereitstellen. Im folgenden Beispiel wird erläutert, wie eine beispielhafte Ruby on Rails-Anwendung für einen Server bereitgestellt wird, auf dem ein Apache/Passenger-Rails-Stack ausgeführt wird. Der Beispielcode wird in einem öffentlichen GitHub Repository gespeichert, aber das grundlegende Verfahren ist dasselbe für die anderen unterstützten Repositorys. Weitere Informationen zum Erstellen und Bereitstellen von Anwendungen finden Sie unter Apps. Den Code des Beispiels, der ausführliche Kommentare enthält, finden Sie unter https://github.com/awslabs/opsworks-demo-rails-photo-share-app
Um eine Ruby on Rails-App aus einem Repository bereitzustellen GitHub
-
Erstellen Sie einen Stack mit einer Rails-App Server-Ebene mit Apache/Passenger als Rails-Stack, fügen Sie der Ebene eine 24/7-Instanz hinzu und starten Sie sie.
-
Wenn die Instance online ist, fügen Sie eine Anwendung zum Stack hinzu und geben Sie folgenden Einstellungen an:
-
Name – Beliebiger Name, im Beispiel wird
PhotoPoll
verwendet.AWS OpsWorks Stacks verwendet diesen Namen zu Anzeigezwecken und generiert einen Kurznamen für den internen Gebrauch und zur Identifizierung der App in der Stackkonfiguration und den Bereitstellungsattributen. Der PhotoPoll Kurzname lautet beispielsweise photopoll.
-
App type – Ruby on Rails.
-
Rails environment – Die verfügbaren Umgebungen werden von der Anwendung bestimmt.
Die Beispiel-Anwendung hat drei Umgebungen:
development
,test
, undproduction
. In diesem Beispiel geben Sie für die Umgebungdevelopment
an. Im Beispiel-Code sind weitere Beschreibungen für jede Umgebung enthalten. -
Repository-Typ — Jeder der unterstützten Repository-Typen. Geben Sie
Git
für dieses Beispiel an. -
Repository URL — Das Repository, aus dem der Code bereitgestellt werden soll.
Stellen Sie in diesem Beispiel den Wert URL auf ein
git://github.com/awslabs/opsworks-demo-rails-photo-share-app
.
Verwenden Sie die Standardwerte für die übrigen Einstellungen und klicken Sie anschließend auf Add App (App hinzufügen), um die Anwendung zu erstellen.
-
-
Stellen Sie die App auf der Rails App Server-Instanz bereit.
-
Wenn die Bereitstellung abgeschlossen ist, gehen Sie zur Seite Instanzen und klicken Sie auf die öffentliche IP-Adresse der Rails App Server-Instanz. Sie sollten Folgendes sehen: