@coolcop (cool cop)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

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

1Answer

このサイトにアクセスできません」 というのは、そもそもWebサーバである Nginx が起動していない可能性が考えられます。

(Nginx と Puma の連携に失敗している場合は、そういった表示ではなく、何かしらの表示は画面に見えるはずだからです)。

なので、そもそも Nginx が起動している状態なのか、を確認してみてくださいませ。

0Like

Your answer might help someone💌