

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 Stacks Layer OpsWorks
<a name="workinglayers-rails"></a>

**Wichtig**  
Der AWS OpsWorks Stacks 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 das AWS Support Team auf [AWS re:POST](https://repost.aws/) oder über den [AWS Premium-Support](https://aws.amazon.com/support).

**Anmerkung**  
Diese Ebene steht nur für Linux-basierte Stacks zur Verfügung.

Die Rails App Server-Schicht ist eine OpsWorks Stacks-Schicht, die einen Entwurf für Instanzen bereitstellt, die als Rails-Anwendungsserver fungieren.

**Installation**: 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](https://www.phusionpassenger.com/). Weitere Informationen zur Protokollierung finden Sie unter [Log Files](http://httpd.apache.org/docs/2.2/logs.html). Weitere Informationen zur Nginx/Unicorn Installation finden Sie unter [Unicorn](http://unicorn.bogomips.org/).

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]`](workingcookbook-attributes.md)-Attributs angeben.  
OpsWorks Stacks installiert ein separates Ruby-Paket, das von Rezepten und dem Instanzagenten verwendet wird. Weitere Informationen finden Sie unter [Ruby-Versionen](workingcookbook-ruby.md).

**Rails-Stack**  
Der standardmäßige Rails-Stack lautet [Apache2](http://httpd.apache.org/) mit [Phusion Passenger](https://www.phusionpassenger.com/). Sie können auch [Nginx](http://nginx.org/en/) mit [Unicorn](http://unicorn.bogomips.org/) verwenden.  
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](http://rubygems.org/)-Version ist 2.5.1.

**Bundler installieren und verwalten**  
Hier können Sie wählen, ob der [Bundler](http://gembundler.com/) 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 Ihren Layern nicht automatisch eine integrierte OpsWorks Stacks-Sicherheitsgruppe zuordnen möchten. Sie müssen die mit der Ebene zu verknüpfende Sicherheitsgruppe angeben. Weitere Informationen finden Sie unter [Erstellen eines neuen Stacks](workingstacks-creating.md).

**Elastic Load Balancer**  
Sie können einen Elastic Load Balancing Load Balancer an die Instances des Layers anhängen.

Mit einer benutzerdefinierten JSON- oder Attributdatei können einige Konfigurationseinstellungen geändert werden. Weitere Informationen finden Sie unter [Überschreiben der Attribute](workingcookbook-attributes.md). Eine Liste der überschreibbaren Apache-, Nginx-, Phusion Passenger- und Unicorn-Attribute finden Sie unter [Integrierte Rezeptbuchattribute](attributes-recipes.md).

**Wichtig**  
Wenn Ihre Ruby on Rails-Anwendung SSL verwendet, empfehlen wir Ihnen, dies nach Möglichkeit zu deaktivieren SSLv3 , um die in [CVE-2014-3566](http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566) beschriebenen Sicherheitslücken zu beheben. Weitere Informationen finden Sie unter [Deaktivierung für Rails-Server SSLv3](#workinglayers-rails-sslv3).

**Topics**
+ [Deaktivierung für Rails-Server SSLv3](#workinglayers-rails-sslv3)
+ [Verbinden mit einer Datenbank](#workinglayers-rails-db)
+ [Bereitstellen von Ruby on Rails-Anwendungen](#workinglayers-rails-deploy)

## Deaktivierung für Rails-Server SSLv3
<a name="workinglayers-rails-sslv3"></a>

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 der `ssl.conf`-Datei des Apache-Servers, wie in [Deaktivierung für Apache Server SSLv3](layers-java.md#layers-java-sslv3) beschrieben.

**Nginx mit Unicorn**  
Fügen Sie eine explizite `ssl_protocols`-Richtlinie zur `nginx.conf`-Datei des Nginx-Servers hinzu. Um sie zu deaktivieren SSLv3, überschreiben Sie die `nginx.conf.erb` Vorlagendatei [des integrierten Nginx-Kochbuchs](https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.10/nginx), 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 zum Konfigurieren von `nginx.conf` finden Sie unter [Configuring HTTPS servers](http://nginx.org/en/docs/http/configuring_https_servers.html). Weitere Informationen zum Überschreiben einer integrierten Vorlage finden Sie unter [Verwenden von benutzerdefinierten Vorlagen](workingcookbook-template-override.md).

## Verbinden mit einer Datenbank
<a name="workinglayers-rails-db"></a>

[Wenn Sie eine App bereitstellen, erstellt OpsWorks Stacks eine neue `database.yml` Datei mit Informationen aus den Attributen der App. `deploy`](workingcookbook-json.md#workingcookbook-json-deploy) Wenn Sie [eine MySQL- oder Amazon RDS-Instance an die App anhängen](workingapps-creating.md#workingapps-creating-data), fügt OpsWorks Stacks die Verbindungsinformationen zu den `deploy` Attributen hinzu, sodass sie `database.yml` automatisch die richtigen Verbindungsdaten enthalten. 

Wenn eine App keine angehängte Datenbank hat, fügt OpsWorks Stacks den `deploy` Attributen standardmäßig keine Verbindungsinformationen hinzu und erstellt auch keine. `database.yml` Wenn Sie eine andere Datenbank verwenden möchten, können Sie mit einem benutzerdefinierten JSON-Objekt Verbindungsdaten enthaltende Datenbank-Attribute zu den `deploy`-Attributen der Anwendung hinzufügen. Die Attribute befinden sich alle unter`["deploy"]["appshortname"]["database"]`. Wo *appshortname* ist der Kurzname der App, den OpsWorks Stacks aus dem Namen der App generiert. Die in der benutzerdefinierten JSON-Datei angegebenen Werte überschreiben sämtliche Standardeinstellungen. Weitere Informationen finden Sie unter [Hinzufügen von Apps](workingapps-creating.md).

OpsWorks Stacks integriert die folgenden [`[:...][:database]`](attributes-json-deploy.md#attributes-json-deploy-app-db)Attributwerte in. `database.yml` Die erforderlichen Attribute hängen von der jeweiligen Datenbank ab, aber Sie müssen über ein `host` Attribut verfügen, da OpsWorks Stacks sonst nichts erstellt. `database.yml`
+ `[:adapter] (String)`— Der Datenbankadapter, z. B. `mysql`
+ `[:database]`(String) — Der Datenbankname.
+ `[:encoding]`(String) — Die Kodierung, auf die normalerweise eingestellt ist`utf8`.
+ `[:host]`(String) — Die Host-URL, z. `railsexample.cdlqlk5uwd0k.us-west-2.rds.amazonaws.com` B.
+ `[:reconnect]`(Boolean) — Gibt an, 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 ein benutzerdefiniertes JSON-Objekt für eine Anwendung mit dem Kurznamen *myapp*.

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

Weitere Informationen zur Definition eines benutzerdefinierten JSON-Objekts finden Sie unter [Nutzen eines benutzerdefinierten JSON-Objekts](workingstacks-json.md). Um die Vorlage zur Erstellung von `database.yml` (`database.yml.erb`) zu sehen, gehen Sie zu dem [integrierten Rezeptbuch-Repository](https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.4/rails/templates/default).

## Bereitstellen von Ruby on Rails-Anwendungen
<a name="workinglayers-rails-deploy"></a>

Sie können Ruby on Rails-Anwendungen aus einem unterstützten Repository bereitstellen. Im Folgenden wird gezeigt, wie Sie eine Ruby on Rails-Beispiel-App auf einem Server bereitstellen, 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](workingapps.md). Den Code des Beispiels, der ausführliche Kommentare enthält, finden Sie unter [https://github.com/awslabs/opsworks-demo-rails-photo-share-app](https://github.com/awslabs/opsworks-demo-rails-photo-share-app). 

**Um eine Ruby on Rails-App aus einem Repository bereitzustellen GitHub**

1. [Erstellen Sie einen Stack](workingstacks-creating.md) mit einer Rails-App Server-Ebene Apache/Passenger als Rails-Stack, [fügen Sie der Ebene eine 24/7-Instanz](workinginstances-add.md) hinzu und [starten Sie sie](workinginstances-starting.md). 

1. Wenn die Instance online ist, [fügen Sie eine Anwendung](workingapps-creating.md#workingapps-creating-general) zum Stack hinzu und geben Sie folgenden Einstellungen an:
   + **Name** – Beliebiger Name, im Beispiel wird `PhotoPoll` verwendet.

     OpsWorks Stacks verwendet diesen Namen für Anzeigezwecke und generiert einen Kurznamen für den internen Gebrauch und zur Identifizierung der App in der [Stackkonfiguration und den Bereitstellungsattributen](workingcookbook-json.md). 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**, und **production**. In diesem Beispiel geben Sie für die Umgebung **development** 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** – Repository, aus dem der Code bereitzustellen ist.

     In diesem Beispiel geben Sie für die URL **git://github.com/awslabs/opsworks-demo-rails-photo-share-app** an.

   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.

1. [Stellen Sie die App](workingapps-deploying.md) auf der Rails App Server-Instanz bereit.

1. 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:

![\[Congratulatory message for deploying first app with AWS OpsWorks, with stylized logo.\]](http://docs.aws.amazon.com/de_de/opsworks/latest/userguide/images/rails_example.png)
