質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Q&A

解決済

2回答

845閲覧

unicorn.sock failed (13: Permission denied) while connecting to upstream

Amkys

総合スコア17

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

0グッド

0クリップ

投稿2023/12/12 07:41

編集2023/12/12 07:59

昨日まで使用できていたWebアプリが、[502 Bad Gateway]が表示され利用できなくなった。
nginxのエラーログを確認すると、Webアプリのunicorn.sockのパーミッションがなく、エラーになっている。
昨日まで使用できていたのと、nginxはrootで起動しているのでunicorn.sockのパーミッションがないというエラーが腑に落ちません。
またwebアプリとnginxのconfファイルなどは変更していません。

webアプリとnginxを停止、起動してみましたが状況は変わりませんでした。
使用できなくなった原因と解決方法、お気付きな点がございましたらご教授頂けないでしょうか?

環境

サーバ:Linuxサーバ(Red Hat Enterprise Linux 6.5)
Webアプリ:ruby on railsで構築(Rails 5.2.2)
Webサーバ:nginx1.14.2

nginx

error.log

12023/12/12 16:02:02 [crit] 57912#57912: *14 stat() "/usr/share/nginx/html/[app]/public/[app]//index" failed (13: Permission denied), client: **.***.**.**, server: localhost, request: "GET /[app]/ HTTP/1.1", host: "***.***.com" 22023/12/12 16:02:02 [crit] 57912#57912: *14 stat() "/usr/share/nginx/html/[app]/public/[app]/.html" failed (13: Permission denied), client: **.***.**.**, server: localhost, request: "GET /[app]/ HTTP/1.1", host: "***.***.com" 32023/12/12 16:02:02 [crit] 57912#57912: *14 stat() "/usr/share/nginx/html/[app]/public/[app]/" failed (13: Permission denied), client: **.***.**.**, server: localhost, request: "GET /[app]/ HTTP/1.1", host: "***.***.com" 42023/12/12 16:02:02 [crit] 57912#57912: *14 connect() to unix:/usr/share/nginx/html/[app]/tmp/sockets/unicorn.sock failed (13: Permission denied) while connecting to upstream, client: **.***.**.**, server: localhost, request: "GET /[app]/ HTTP/1.1", upstream: "http://unix:/usr/share/nginx/html/[app]/tmp/sockets/unicorn.sock:/[app]/", host: "***.***.com"

nginxはrootで起動

1$ ps aux | grep nginx 2root 57904 0.0 0.0 47328 1132 ? Ss 11:27 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf 3root 57905 0.0 0.0 60024 2268 ? S 11:27 0:00 nginx: worker process 4root 57906 0.0 0.0 60024 2268 ? S 11:27 0:00 nginx: worker process 5root 57907 0.0 0.0 60024 2544 ? S 11:27 0:00 nginx: worker process 6root 57908 0.0 0.0 60024 2268 ? S 11:27 0:00 nginx: worker process 7root 57910 0.0 0.0 60024 2300 ? S 11:27 0:00 nginx: worker process 8root 57911 0.0 0.0 60024 2544 ? S 11:27 0:00 nginx: worker process 9root 57912 0.0 0.0 60024 2268 ? S 11:27 0:00 nginx: worker process 10root 57913 0.0 0.0 60024 2544 ? S 11:27 0:00 nginx: worker process

nginx.conf

1user root; 2worker_processes auto; 3 4error_log /var/log/nginx/error.log warn; 5pid /var/run/nginx.pid; 6 7 8events { 9 worker_connections 1024; 10} 11 12 13http { 14 include /etc/nginx/mime.types; 15 default_type application/octet-stream; 16 17 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 18 '$status $body_bytes_sent "$http_referer" ' 19 '"$http_user_agent" "$http_x_forwarded_for"'; 20 21 access_log /var/log/nginx/access.log main; 22 23 sendfile on; 24 #tcp_nopush on; 25 26 keepalive_timeout 65; 27 28 #gzip on; 29 30 include /etc/nginx/conf.d/*.conf; 31}

application.conf

1upstream sample { 2 server unix:/usr/share/nginx/html/sample/tmp/sockets/unicorn.sock; 3} 4 5upstream [app] { 6 server unix:/usr/share/nginx/html/[app]/tmp/sockets/unicorn.sock; 7} 8 9server { 10 listen 80; 11 server_name localhost tnror3 tnror3.sandisk.com; 12 13 root /usr/share/nginx/html; 14 15 location /[app]{ 16 root /usr/share/nginx/html/[app]/public; 17 try_files $uri/index $uri.html $uri @[app]; 18 } 19 20 client_max_body_size 1G; 21 22 location @[app] { 23 proxy_set_header X-Real-IP $remote_addr; 24 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 25 proxy_set_header Host $http_host; 26 proxy_pass http://[app]; 27 #fastcgi_read_timeout 180; 28 send_timeout 180; 29 proxy_connect_timeout 1800; 30 proxy_read_timeout 1800; 31 proxy_send_timeout 1800; 32 } 33 34 location /sample { 35 root /usr/share/nginx/html/sample/public; 36 try_files $uri/index $uri.html $uri @sample; 37 } 38 39 location @sample { 40 proxy_set_header X-Real-IP $remote_addr; 41 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 42 proxy_set_header Host $http_host; 43 proxy_pass http://sample; 44 } 45}

シンボリックリンク/usr/share/nginx/html/

total 8 -rw-r--r-- 1 root root 537 Dec 5 2018 50x.html lrwxrwxrwx 1 root root 38 Mar 19 2019 [app] -> /home/[user]/rails/prod/[app] -rw-r--r-- 1 root root 612 Dec 5 2018 index.html lrwxrwxrwx 1 root root 34 Mar 19 2019 sample -> /home/[user]/rails/prod/sample

webアプリ

unicorn_error.log

1[2023-12-12 11:25:27.557732 #57497] INFO -- : reaped #<Process::Status: pid 57504 exit 0> worker=1 2[2023-12-12 11:25:27.557802 #57497] INFO -- : reaped #<Process::Status: pid 57506 exit 0> worker=2 3[2023-12-12 11:25:27.557870 #57497] INFO -- : master complete 4I, [2023-12-12T11:26:00.085373 #57816] INFO -- : Refreshing Gem list 5[2023-12-12 11:26:04.669826 #57816] INFO -- : unlinking existing socket=/home/[user]/rails/prod/[app]/tmp/sockets/unicorn.sock 6[2023-12-12 11:26:04.671201 #57816] INFO -- : listening on addr=/home/[user]/rails/prod/[app]/tmp/sockets/unicorn.sock fd=11 7[2023-12-12 11:26:04.685914 #57838] INFO -- : worker=0 ready 8[2023-12-12 11:26:04.687540 #57840] INFO -- : worker=1 ready 9[2023-12-12 11:26:04.688322 #57816] INFO -- : master process ready 10[2023-12-12 11:26:04.689128 #57842] INFO -- : worker=2 ready

unicorn.sock

1$ pwd 2/home/[user]/rails/prod/[app]/tmp/sockets 3$ ll 4total 0 5srwxrwxrwx 1 [user] rnroper 0 Dec 12 11:26 unicorn.sock

試したこと

webアプリ停止、起動 → 変化なし
nginx停止、起動 → 変化なし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

winterboum

2023/12/12 13:12 編集

rootで起動しても実効userが別人になっていたりしませんか? あと、 ソケットに rw権限はついてますか ああ、rwはついてますね。
Amkys

2023/12/12 23:48

起動はsudoコマンド使用し、rootで起動しています。 sudo service nginx start $ ps aux | grep nginx root 93701 0.0 0.0 47328 1132 ? Ss 08:37 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf root 93702 0.0 0.0 60024 2204 ? S 08:37 0:00 nginx: worker process root 93703 0.0 0.0 60024 2268 ? S 08:37 0:00 nginx: worker process root 93704 0.0 0.0 60024 2544 ? S 08:37 0:00 nginx: worker process root 93705 0.0 0.0 60024 2268 ? S 08:37 0:00 nginx: worker process root 93707 0.0 0.0 60024 2268 ? S 08:37 0:00 nginx: worker process root 93708 0.0 0.0 60024 2268 ? S 08:37 0:00 nginx: worker process root 93709 0.0 0.0 60024 2300 ? S 08:37 0:00 nginx: worker process root 93710 0.0 0.0 60024 2268 ? S 08:37 0:00 nginx: worker process
guest

回答2

0

自己解決

webアプリ起動時に、unicorn_error.logに以下のunlinkingがあり、
[2023-12-13 09:49:36.795450 #10866] INFO -- : unlinking existing socket=/home/afujishima/rails/prod/[app]/tmp/sockets/unicorn.sock

もしかしたらDB(postgres)の接続に失敗しているのかと思い、postgresの確認をしたところ
$ pg_ctl -D /var/lib/pgsql/9.6/data status
could not change directory to "/home/[user]/rails/prod/[app]/log": Permission denied
いつの間にパーミッションが変更されたのか分かりませんが、それが原因でした。

ひとまず上層をたどりながらフルコントロールにしていき、Webブラウザで表示確認することが出来ました。
なぜ、パーミッションが変わったかは不明ですが、階層毎に適正なパーミッションを設定します。

回答、閲覧し思考して頂きました皆様、ありがとうございました。

投稿2023/12/13 01:24

Amkys

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

upstream が server unix:/usr/share/nginx/html/[app]/tmp/sockets/unicorn.sock なのに
unicornのlogでは listening on addr=/home/[user]/rails/prod/[app]/tmp/sockets/unicorn.sock fd=11
で一致していないのが原因では?

投稿2023/12/12 13:17

winterboum

総合スコア23645

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Amkys

2023/12/12 23:50 編集

/usr/share/nginx/html/で以下のようにシンボリックリンクしており lrwxrwxrwx 1 root root 38 Mar 19 2019 [app] -> /home/[user]/rails/prod/[app] lsコマンドでも、確認できています。 $ ll /usr/share/nginx/html/[app]/tmp/sockets/unicorn.sock srwxrwxrwx 1 [user] rnroper 0 Dec 13 08:31 /usr/share/nginx/html/[app]/tmp/sockets/unicorn.sock 設定は合っていますし、nginxの設定関係は何も変更はないのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問