前提
世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまでを参考にRailsアプリをAWSにデプロイしようとしていたところ以下のエラーで進めなくなりました、、、
/var/www/rails/ToDoGame/backend/log/nginx.error.log
[error] 6439#0: *251 connect() to unix:/var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock failed (111: Connection refused) while connecting to upstream, client: 219.66.81.44, server: IPアドレス, request: "GET / HTTP/1.1", upstream: "http://unix:/var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock:/", host: "IPアドレス"
###発生しているエラー
unicornを起動していない状態でIPアドレスにアクセスするとこの様に404 Not Foundが表示されます。
なのでtry_filesの記述がおかしいのかな?と少し疑っています。
Nginx設定ファイル
/etc/nginx/conf.d/backend.conf
error_log /var/www/rails/ToDoGame/backend/log/nginx.error.log; access_log /var/www/rails/ToDoGame/backend/log/nginx.access.log; client_max_body_size 2G; upstream app_server { server unix:/var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock fail_timeout=0; } server { listen 80; server_name ~~~.~~~.~~~.~~~;(Elastic IP) keepalive_timeout 5; root /var/www/rails/ToDoGame/backend/public; try_files $uri/index.html $uri.html $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } error_page 500 502 503 504 /500.html; location = /500.html { root /var/www/rails/ToDoGame/backend/public; } }
補足情報
[Kazuki@ip-10-0-0-59 log]$ ps aux | grep nginx root 4270 0.0 0.4 60132 4060 ? Ss Sep25 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 6439 0.0 0.4 60136 4640 ? S 00:47 0:00 nginx: worker process Kazuki 7339 0.0 0.1 110492 1948 pts/0 S+ 06:23 0:00 grep --color=auto nginx
[Kazuki@ip-10-0-0-59 log]$ ps -ef | grep nginx | grep -v grep root 4270 1 0 Sep25 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 6439 4270 0 00:47 ? 00:00:00 nginx: worker process
unicornを起動した状態でIPアドレスにアクセスすると以下の様になってます。
一ヶ月くらいデプロイできない状態が続いており、かなり苦しいです。解決策を知っている方がいれば教えていただきたいです!
##unicorn関連
unicornの起動確認
[Kazuki@ip-10-0-0-59 ~]$ ps -ef | grep unicorn | grep -v grep Kazuki 7375 1 0 06:25 ? 00:00:00 unicorn_rails master -c /var/www/rails/ToDoGame/backend/config/unicorn.conf.rb -D -E production Kazuki 7380 7375 0 06:25 ? 00:00:00 unicorn_rails worker[0] -c /var/www/rails/ToDoGame/backend/config/unicorn.conf.rb -D -E production Kazuki 7381 7375 0 06:25 ? 00:00:00 unicorn_rails worker[1] -c /var/www/rails/ToDoGame/backend/config/unicorn.conf.rb -D -E production
unix:/var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock の存在確認
/var/www/rails/ToDoGame/backend/tmp/sockets
[Kazuki@ip-10-0-0-59 sockets]$ ls -a . .. .unicorn.sock
気になるのがlsだけでは表示されないことです。
[Kazuki@ip-10-0-0-59 sockets]$ ls
[Kazuki@ip-10-0-0-59 ~]$ ls -l /var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock srwxrwxrwx 1 Kazuki Kazuki 0 Sep 26 06:25 /var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock
/var/www/rails/ToDoGame/backend/log/unicorn.log
I, [2020-09-26T06:25:59.160571 #7375] INFO -- : Refreshing Gem list I, [2020-09-26T06:25:59.815317 #7375] INFO -- : unlinking existing socket=/var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock I, [2020-09-26T06:25:59.815457 #7375] INFO -- : listening on addr=/var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock fd=9 I, [2020-09-26T06:25:59.820600 #7375] INFO -- : master process ready I, [2020-09-26T06:25:59.827812 #7381] INFO -- : worker=1 ready I, [2020-09-26T06:25:59.828147 #7380] INFO -- : worker=0 ready
気になる点
/var/www/rails/ToDoGame/backend/tmp/sockets
[Kazuki@ip-10-0-0-59 sockets]$ sudo vi .unicorn.sock
を行うと".unicorn.sock" [Permission Denied]と表示されます。
これが原因なのでしょうか?
##追記
/var/www/rails/ToDoGame/backend/log/nginx.error.log
[error] 6439#0: *251 connect() to unix:/var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock failed (111: Connection refused) while connecting to upstream, client: xxx.xx.xx.xx, server: IPアドレス, request: "GET / HTTP/1.1", upstream: "http://unix:/var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock:/", host: "IPアドレス"
の http://unix:/var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock:/
が怪しいのでしょうか?
この場合unix:/var/www/rails/ToDoGame/backend/tmp/sockets/.unicorn.sock:/
になるべきなのでしょうか?
またclientとserverは異なる数字でも問題ないのでしょうか?
この問題が原因だった場合nginx側の設定をどの様に変更すれば解決できるのでしょうか?
わかる方がいれば教えて頂きたいですm(_ _)m
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。