Deploying a Ruby application

Panduan ini mengajarkan bagaimana Anda bisa menyebarkan aplikasi Anda ke server. Panduan ini mengasumsikan bahwa Anda telah melakukan hal berikut, dan Anda tahu cara melakukannya:

Penumpang dan Nginx sudah terinstal di server.
Anda telah mentransfer kode aplikasi ke server.
Anda telah menginstal Ruby.
Anda telah menginstal semua dependensi yang diperlukan yang dibutuhkan aplikasi Anda.
Jika Anda melewatkan salah satu prasyarat ini atau tidak tahu bagaimana cara melakukannya, sebaiknya Anda mengikuti tutorial Penerapan. Tutorial penyebaran adalah panduan dari ujung ke ujung dan mengajarkan cara memasang setiap komponen.

Tentukan perintah Ruby yang harus digunakan 
Sebelum memulai, Anda perlu memberi tahu bahwa perintah Ruby harus digunakan untuk menjalankan aplikasi Anda, kalau-kalau ada beberapa penerjemah Ruby di sistem Anda. Silakan jalankan konfigurasi penumpang tentang perintah ruby untuk mengetahui juru bahasa Ruby yang Anda gunakan. Sebagai contoh:
passenger-config about ruby-command
passenger-config was invoked through the following Ruby interpreter:
  Command: /usr/local/rvm/gems/ruby-2.3.3/wrappers/ruby
  Version: ruby 2.3.3p85 (2015-02-26 revision 49769) [x86_64-linux]

Harap perhatikan jalur setelah “Command” (dalam contoh ini, /usr/local/rvm/gems/ruby-2.3.3/wrappers/ruby). Anda akan membutuhkannya di salah satu langkah selanjutnya.

Deploying an app to a virtual host’s root

Untuk menerapkan aplikasi ke jalur akar virtual Nginx, langkah-langkah berikut harus dilakukan:

Tambahkan entri host virtual (blok server) ke file konfigurasi Nginx Anda.
Akar blok server harus mengarah ke subdirektori publik aplikasi Anda.
Anda juga harus mengatur passenger_enabled di blok server.
Berikut adalah contohnya:

server {
    listen 80;
    server_name yourserver.com;

    # Tell Nginx and Passenger where your app's 'public' directory is
    root /path-to-app/public;

    # Turn on Passenger
    passenger_enabled on;
    passenger_ruby /path-to-ruby;
}

Ganti yourserver.com dengan nama host server Anda, dan ganti / path-to-app dengan jalur direktori kode aplikasi Anda. Namun, pastikan Nginx dikonfigurasi untuk menunjuk ke subdirektori publik di dalamnya!

Ganti / path-to-ruby dengan perintah Ruby yang Anda dapatkan di Tentukan perintah Ruby yang harus digunakan Penumpang.

Setelah selesai, restart Nginx. Jika Anda menginstal Nginx melalui paket Debian atau RPM kami:

sudo service nginx restart

Jika tidak, jika Anda menginstal Nginx dari sumber dan tidak memiliki skrip init:

sudo kill $(cat /opt/nginx/logs/nginx.pid)
$ sudo /opt/nginx/sbin/nginx

Kamu sekarang sudah selesai Jika Anda menemui masalah, lihat panduan mengatasi masalah.

Deploying an app to a sub-URI or subdirectory

Anda juga dapat menyebarkan aplikasi ke sub-URI alih-alih akar URI. Misalnya, anggaplah Anda sudah memiliki virtual host untuk aplikasi / website / phusion:
http {
    ...

    server {
        listen 80;
        server_name www.phusion.nl;
        root /websites/phusion/public;
        passenger_enabled on;
    }
}

Dan Anda ingin aplikasi Anda, terletak di / websites / secondapp, agar dapat diakses dari URL http://www.phusion.nl/subpath. Untuk melakukan ini, Anda perlu melakukan hal berikut:

Buat lokasi dengan parameter ~ ^ / <SUBURI> (/.* | $). Ini adalah ekspresi reguler yang mengatakan: “cocokkan semuanya dengan tepat, atau dimulai dengan /”.
Di dalam blok lokasi, set alias <PATH TO YOUR APPLICATION PUBLIC SUBDIRECTORY> $ 1.
Di dalam blok lokasi, atur passenger_base_uri <SUBURI>.
Di dalam blok lokasi, atur passenger_app_root <PATH TO YOUR APPLICATION ROOT>.
Di dalam blok lokasi, atur passenger_document_root <PATH TO YOUR APPLICATIOS PUBLIC SUBDIRECTORY>.
Di dalam blok lokasi, set app_type dan startup_file sesuai.
Berikut adalah contohnya:

http {
    ...

    server {
        listen 80;
        server_name www.phusion.nl;
        root /websites/phusion/public;
        passenger_enabled on;

        # This block has been added.
        location ~ ^/subpath(/.*|$) {
            alias /websites/secondapp/public$1;  # <-- be sure to point to 'public'!
            passenger_base_uri /subpath;
            passenger_app_root /websites/secondapp;
            passenger_document_root /websites/secondapp/public;
            passenger_enabled on;

        }
    }
}

Setelah selesai, restart Nginx. Jika Anda menginstal Nginx melalui paket Debian atau RPM kami:

sudo service nginx restart

Jika tidak, jika Anda menginstal Nginx dari sumber dan tidak memiliki skrip init:

sudo kill $(cat /opt/nginx/logs/nginx.pid)
$ sudo /opt/nginx/sbin/nginx

You are now done. If you run into any problems, please refer to the troubleshooting guide.

Pos terkait

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.