hasyrails / calendar-vue-original

0 stars 0 forks source link

nginxが 404 not found #365

Open hasyrails opened 3 years ago

hasyrails commented 3 years ago

AWS EC2のパブリックIPアドレスにアクセス → nginxが「404 not found」

hasyrails commented 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]
hasyrails commented 3 years ago

listenするport番号を変更

$ 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;
    }
  }

nginx画面が現れた??

http://[Elastic IP]:80でアクセス Image from Gyazo

hasyrails commented 3 years ago

「Welcome to nginx on Amazon Linux」画面が現れた時の対処

[Welcome to nginx on the Amazon Linux AMI!]nginxサーバにアプリケーションをアップロードした時に起こるルーティングエラーの解決例 - Qiita

hasyrails commented 3 years ago

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!"と表示されると思います。