Open hasyrails opened 3 years ago
$ locate error.log
/var/www/rails/calendar-vue-original/current/log/nginx.error.log
$ cat error.log
2020/11/13 20:54:47 [crit] 3058#0: *52
connect() to unix:/var/www/rails/calendar-vue-original/current/tmp/sockets/.unicorn.sock failed
(2: No such file or directory)
while connecting to upstream,
client: [client],
server: [my IP address],
request: "GET / HTTP/1.1",
upstream: "http://unix:/var/www/rails/calendar-vue-original/current/tmp/sockets/.unicorn.sock:/",
host: [Elastic IP]
2020/11/13 20:54:47 [error] 3058#0: *52
open() "/var/www/rails/calendar-vue-original/current/public/500.html" failed
(2: No such file or directory),
client: [client],
server: [my IP adress],
request: "GET / HTTP/1.1",
upstream: "http://unix:/var/www/rails/calendar-vue-original/current/tmp/sockets/.unicorn.sock/",
host: [Elastic IP]
$ sudo vim /etc/nginx/conf.d/calendar-vue-original.conf
#各種ログのディレクトリ設定
error_log /var/www/rails/calendar-vue-original/current/log/nginx.error.log;
access_log /var/www/rails/calendar-vue-original/current/log/nginx.access.log;
#処理を受け取る最大許容量
client_max_body_size 2G;
upstream app_server {
# 連携するunicornのソケットのパス
server unix:/var/www/rails/calendar-vue-original/current/tmp/sockets/.unicorn.sock fail_timeout=0;
}
server {
listen 3000; ← listen 80: だと 404 not found
server_name [my IP adress];
#次のリクエストが来るまでの待ち時間(秒
keepalive_timeout 5;
#静的ファイルを読みに行くディレクトリ
root /var/www/rails/calendar-vue-original/current/public;
#キャッシュのディレクトリ
try_files $uri/index.html $uri.html $uri @app;
location @app {
# HTTP headers
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/calendar-vue-original/current/public;
}
}
http://[Elastic IP]:80でアクセス
[Welcome to nginx on the Amazon Linux AMI!]nginxサーバにアプリケーションをアップロードした時に起こるルーティングエラーの解決例 - Qiita
2点確認してください。
サーバ名が一致していることの確認 手順中 mumu.conf というアプリケーション用の設定ファイルを作るところがあるのですが、その中で
server_name
~.~.~.~;(#アプリのElastic IPに変更してください)というところがあるかと思います。ここは正しく設定できてますか? ここが EC2インスタンスに結び付けられた Elastic IP 以外になってると、"Welcome to nginx on the Amazon Linux AMI!"と表示されると思います。また、アクセスするときにここで指定したIPアドレスをURLに指定する必要があります。
ドキュメントルートの確認 手順中 mumu.conf というアプリケーション用の設定ファイルを作るところがあるのですが、その中で
path for static files
root /var/www/rails/mumu/public; #自分のアプリケーション名に変更
というところがあるかと思います。ここは正しく設定できてますか? ここが /usr/share/nginx/html/ になってると、"Welcome to nginx on the Amazon Linux AMI!"と表示されると思います。
AWS EC2のパブリックIPアドレスにアクセス → nginxが「404 not found」