Pumaを使ってデーモン化&自動起動設定したRailsをNginXと連携する。
pumaデーモン化の自動起動は必須。
rails側をまず自動起動させておく必要がある。この記事にまとめてある。
hamakichitaro.hatenablog.com
pumaにソケットを定義しておく。config/puma.rb
bind "unix:///<プロジェクトルートをフルパス指定>/tmp/sockets/puma.sock"
nginxをインストール
sudo apt-get update sudo apt-get install nginx
nginxに、ソケット経由で連携するよう設定する。/etc/nginx/conf.d/puma.conf
upstream <アプリ名> { # Path to Puma SOCK file, as defined previously server unix://<プロジェクトルートをフルパス指定>/tmp/sockets/puma.sock fail_timeout=0; # 例 unix:///home/username/web-app/tmp/sockets/puma.sock } server { listen 80; server_name <IPアドレスまたはホスト名で指定>; #nginxでリクエストを受け付ける窓口 root <プロジェクトルートをフルパス指定>/public; location / { proxy_pass http://localhost:3000; #railsサービスを指定。例は、nginxと同じサーバーのポート3000でrailsがサービスしている。 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; } error_page 500 502 503 504 /500.html; client_max_body_size 4G; keepalive_timeout 10; }
nginxを再起動
sudo service nginx restart