

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Lapisan OpsWorks Tumpukan Server Aplikasi Rails
<a name="workinglayers-rails"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

**catatan**  
Lapisan ini hanya tersedia untuk tumpukan berbasis Linux.

Layer Rails App Server adalah lapisan OpsWorks Stacks yang menyediakan cetak biru untuk instance yang berfungsi sebagai server aplikasi Rails.

**Instalasi**: OpsWorks Stacks menggunakan penginstal paket instance untuk menginstal paket server di lokasi defaultnya. Untuk informasi lebih lanjut tentang Apache/Passenger pemasangan, lihat Penumpang [Phusion.](https://www.phusionpassenger.com/) Untuk informasi selengkapnya tentang pencatatan, lihat [File Log](http://httpd.apache.org/docs/2.2/logs.html). Untuk informasi lebih lanjut tentang Nginx/Unicorn instalasi, lihat [Unicorn](http://unicorn.bogomips.org/).

Halaman **Add Layer** menyediakan opsi konfigurasi berikut, yang semuanya opsional.

**Versi Ruby**  
Versi Ruby yang akan digunakan oleh aplikasi Anda. Nilai defaultnya adalah 2.3.  
Anda juga dapat menentukan versi Ruby pilihan Anda dengan [mengganti atribut. `[:opsworks][:ruby_version]`](workingcookbook-attributes.md)  
OpsWorks Stacks menginstal paket Ruby terpisah untuk digunakan oleh resep dan agen instance. Untuk informasi selengkapnya, lihat [Versi Ruby](workingcookbook-ruby.md).

**Tumpukan Rel**  
[Tumpukan Rails default adalah [Apache2](http://httpd.apache.org/) dengan Phusion Passenger.](https://www.phusionpassenger.com/) [Anda juga dapat menggunakan [Nginx](http://nginx.org/en/) dengan Unicorn.](http://unicorn.bogomips.org/)  
Jika Anda menggunakan Nginx dan Unicorn, Anda harus menambahkan permata unicorn ke Gemfile aplikasi Anda, seperti pada contoh berikut:  

```
source 'https://rubygems.org'
gem 'rails', '3.2.15'
...
# Use unicorn as the app server
gem 'unicorn'
...
```

**Versi Penumpang**  
Jika Anda telah menentukan Apache2/Passenger, Anda harus menentukan versi Penumpang. Nilai defaultnya adalah 5.0.28.

**Versi Rubygems**  
Versi [Rubygems default adalah 2.5.1](http://rubygems.org/)

**Instal dan Kelola Bundler**  
Memungkinkan Anda memilih apakah akan menginstal dan mengelola [Bundler](http://gembundler.com/). Nilai defaultnya adalah **Ya**.

**Versi bundler**  
Versi Bundler default adalah 1.12.5.

**Grup keamanan kustom**  
Pengaturan ini muncul jika Anda memilih untuk tidak secara otomatis mengaitkan grup keamanan OpsWorks Stacks bawaan dengan lapisan Anda. Anda harus menentukan grup keamanan mana yang akan dikaitkan dengan layer. Untuk informasi selengkapnya, lihat [Buat Stack Baru](workingstacks-creating.md).

**Elastic Load Balancer**  
Anda dapat memasang penyeimbang beban Elastic Load Balancing ke instance layer.

Anda dapat memodifikasi beberapa pengaturan konfigurasi dengan menggunakan JSON kustom atau file atribut kustom. Untuk informasi selengkapnya, lihat [Mengesampingkan Atribut](workingcookbook-attributes.md). Untuk daftar atribut Apache, Nginx, Phusion Passenger, dan Unicorn yang dapat diganti, lihat. [Atribut Buku Masak Bawaan](attributes-recipes.md)

**penting**  
[Jika aplikasi Ruby on Rails Anda menggunakan SSL, kami sarankan Anda menonaktifkan SSLv3 jika memungkinkan untuk mengatasi kerentanan yang dijelaskan dalam CVE-2014-3566.](http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566) Untuk informasi selengkapnya, lihat [Menonaktifkan SSLv3 untuk Rails Server](#workinglayers-rails-sslv3).

**Topics**
+ [Menonaktifkan SSLv3 untuk Rails Server](#workinglayers-rails-sslv3)
+ [Menghubungkan ke Database](#workinglayers-rails-db)
+ [Menyebarkan Ruby di Aplikasi Rails](#workinglayers-rails-deploy)

## Menonaktifkan SSLv3 untuk Rails Server
<a name="workinglayers-rails-sslv3"></a>

 SSLv3 Untuk menonaktifkan server Rails, perbarui pengaturan **Ruby Version** layer ke 2.1 atau lebih tinggi, yang menginstal Ruby 2.1.4 atau lebih tinggi sebagai versi yang digunakan aplikasi.
+ Perbarui pengaturan **Ruby Version** layer ke 2.1 atau lebih tinggi.
+ Perbarui file konfigurasi untuk tumpukan Rails Anda, sebagai berikut.

**Apache dengan Penumpang Phusion**  
Perbarui `SSLProtocol` pengaturan dalam `ssl.conf` file server Apache, seperti yang dijelaskan dalam[Menonaktifkan Server SSLv3 Apache](layers-java.md#layers-java-sslv3).

**Nginx dengan Unicorn**  
Tambahkan `ssl_protocols` direktif eksplisit ke file server Nginx. `nginx.conf` Untuk menonaktifkan SSLv3, ganti file template [buku masak `nginx.conf.erb` nginx](https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.10/nginx) bawaan, yang digunakan resep Pengaturan lapisan Rails App Server untuk `nginx.conf` membuat, dan tambahkan arahan berikut:  

```
ssl_protocols TLSv1.2;
```
Untuk informasi selengkapnya tentang cara mengonfigurasi`nginx.conf`, lihat [Mengonfigurasi server HTTPS](http://nginx.org/en/docs/http/configuring_https_servers.html). Untuk informasi selengkapnya tentang cara mengganti template bawaan, lihat[Menggunakan Template Kustom](workingcookbook-template-override.md).

## Menghubungkan ke Database
<a name="workinglayers-rails-db"></a>

[Saat Anda menerapkan aplikasi, OpsWorks Stacks membuat `database.yml` file baru menggunakan informasi dari atribut aplikasi. `deploy`](workingcookbook-json.md#workingcookbook-json-deploy) Jika Anda [melampirkan instance MySQL atau Amazon](workingapps-creating.md#workingapps-creating-data) RDS ke OpsWorks aplikasi, Stacks menambahkan informasi koneksi `deploy` ke atribut, `database.yml` sehingga secara otomatis berisi data koneksi yang benar. 

Jika aplikasi tidak memiliki database terlampir, secara default, OpsWorks Stacks tidak menambahkan informasi koneksi apa pun ke `deploy` atribut dan tidak membuat`database.yml`. Jika ingin menggunakan database lain, Anda dapat menggunakan JSON khusus untuk menambahkan atribut database ke `deploy` atribut aplikasi dengan informasi koneksi. Semua atribut ada di bawah`["deploy"]["appshortname"]["database"]`, di *appshortname* mana nama pendek aplikasi, yang dihasilkan OpsWorks Stacks dari nama aplikasi. Nilai-nilai yang Anda tentukan dalam JSON kustom mengesampingkan pengaturan default apa pun. Untuk informasi selengkapnya, lihat [Menambahkan Aplikasi](workingapps-creating.md).

OpsWorks Tumpukan menggabungkan nilai [`[:...][:database]`](attributes-json-deploy.md#attributes-json-deploy-app-db)atribut berikut ke dalam. `database.yml` Atribut yang diperlukan tergantung pada database tertentu, tetapi Anda harus memiliki `host` atribut atau OpsWorks Stacks tidak akan membuat`database.yml`.
+ `[:adapter] (String)`— Adaptor basis data, seperti`mysql`.
+ `[:database]`(String) — Nama database.
+ `[:encoding]`(String) — Pengkodean, yang biasanya diatur ke`utf8`.
+ `[:host]`(String) — URL host, seperti`railsexample.cdlqlk5uwd0k.us-west-2.rds.amazonaws.com`.
+ `[:reconnect]`(Boolean) - Apakah aplikasi harus terhubung kembali jika koneksi tidak ada lagi.
+ `[:password]`(String) — Kata sandi basis data.
+ `[:port]`(Jumlah). — Nomor port database. Gunakan atribut ini untuk mengganti nomor port default, yang diatur oleh disetel oleh adaptor.
+ `[:username]`(String) - Nama pengguna database.

Contoh berikut menunjukkan JSON kustom untuk aplikasi yang nama pendeknya adalah *myapp*.

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

Untuk informasi tentang cara menentukan JSON kustom, lihat[Menggunakan JSON Kustom](workingstacks-json.md). Untuk melihat template yang digunakan untuk create `database.yml` (`database.yml.erb`), buka [repositori buku masak bawaan](https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.4/rails/templates/default).

## Menyebarkan Ruby di Aplikasi Rails
<a name="workinglayers-rails-deploy"></a>

Anda dapat menerapkan aplikasi Ruby on Rails dari salah satu repositori yang didukung. Berikut ini menunjukkan cara menerapkan contoh aplikasi Ruby on Rails ke server yang menjalankan tumpukan Rails. Apache/Passenger Kode contoh disimpan dalam GitHub repositori publik, tetapi prosedur dasarnya sama untuk repositori lain yang didukung. Untuk informasi selengkapnya tentang cara membuat dan menerapkan aplikasi, lihat[Aplikasi](workingapps.md). Untuk melihat kode contoh, yang menyertakan komentar ekstensif, buka [https://github.com/awslabs/opsworks-demo-rails-photo-share-app](https://github.com/awslabs/opsworks-demo-rails-photo-share-app). 

**Untuk menerapkan aplikasi Ruby on Rails dari repositori GitHub**

1. [Buat tumpukan](workingstacks-creating.md) [dengan layer Rails App Server dengan Apache/Passenger sebagai tumpukan Rails, [tambahkan instance 24/7](workinginstances-add.md) ke layer, dan mulai.](workinginstances-starting.md) 

1. Setelah instance online, [tambahkan aplikasi](workingapps-creating.md#workingapps-creating-general) ke tumpukan dan tentukan pengaturan berikut:
   + **Nama** — Nama apa pun yang Anda inginkan; contohnya menggunakan`PhotoPoll`.

     OpsWorks Stacks menggunakan nama ini untuk tujuan tampilan, dan menghasilkan nama pendek untuk penggunaan internal dan untuk mengidentifikasi aplikasi dalam [konfigurasi tumpukan dan atribut penerapan](workingcookbook-json.md). Misalnya, nama PhotoPoll pendeknya adalah photopoll.
   + **Jenis aplikasi** — **Ruby on Rails**.
   + **Lingkungan Rails** — Lingkungan yang tersedia ditentukan oleh aplikasi.

     Aplikasi contoh memiliki tiga:**development**,**test**, dan**production**. Untuk contoh ini, atur lingkungan ke**development**. Lihat kode contoh untuk deskripsi setiap lingkungan.
   + Jenis **repositori — Salah satu jenis** repositori yang didukung. Tentukan `Git` untuk contoh ini
   + **URL Repositori** — Repositori tempat kode harus digunakan.

     Untuk contoh ini, atur URL ke**git://github.com/awslabs/opsworks-demo-rails-photo-share-app**.

   Gunakan nilai default untuk setelan yang tersisa, lalu klik **Tambah Aplikasi** untuk membuat aplikasi.

1. [Menerapkan aplikasi](workingapps-deploying.md) ke instance Rails App Server.

1. Saat penerapan selesai, buka halaman **Instans** dan klik alamat IP publik instans Rails App Server. Anda akan melihat yang berikut ini:

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