Pumaとnginxの連携が出来ない。
解決したいこと
nginxとpumaでデプロイしようと思っているのですが、ブラウザでドメインをhttpで入力すると「このサイトにアクセスできません」と表示され困っています。(httpsはまだしていません。)
現状は、ドメインの取得とDNS設定とec2のインバウの設定・elasticIPの紐付け等は終了しております。
また、
bundle exec rails s -e production
を実行すると、
*Listening on unix:///var/www/debate/tmp/sockets/puma.sock
とログに表示されており、pumaの設定自体は間違えていないのかなと思っています。
puma側はunixドメインソケットファイルをlistenできているので、nginxからpuma.sockをlistenできていないのかなと思っているのですが、パスも合っていますし、どうしてブラウザでアプリにアクセスできないのかが分かりません。
puma、nginxの設定ファイルを記載しますので、何か気になるところがありましたらご指摘頂きたいです。
また、質問に関して不十分な情報等ありましたらそちらもご指摘下さい!
よろしくお願い致します。
nginxの設定ファイル
アプリ名.conf
upstream puma {
# UNIXドメインソケット通信の設定
server unix:///var/www/アプリ名/tmp/sockets/puma.sock fail_timeout=0;
}
server {
listen 80;
server_name ドメイン名;
root /var/www/アプリ名/public;
try_files $uri @puma;
location / {
try_files $uri @puma;
}
location @puma {
# サーバの指示通りにリダイレクト
proxy_redirect off;
# proxy_set_headerを利用することでサーバーに情報を転送できる
proxy_set_header Host $http_host; # ホスト名
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 送信元の経路情報
proxy_set_header X-Real-IP $remote_addr; #送信元のIPアドレス
# upstreamの名前を記述
proxy_pass http://puma;
}
}
pumaの設定ファイル
puma.rb
記述部分のみです。puma.sockをbindしているのでportの設定はコメントアウトしていますので、こちらには記載しません。
bind "unix:///var/www/アプリ名/tmp/sockets/puma.sock"
stdout_redirect "/var/www/アプリ名/log/stdout", "/var/www/アプリ名/log/stderr"
max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
threads min_threads_count, max_threads_count
worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development"
environment ENV.fetch("RAILS_ENV") { "development" }
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
plugin :tmp_restart
以上になります。
よろしくお願いします。
0 likes