1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【AWS】Route53で取得したドメインでアクセスすると「404 Not Found」が表示されてしまう

Last updated at Posted at 2020-04-19

AWSにデプロイしたwebサイトに独自で取得したドメインからアクセスしようとしたらエラーで正常にアクセスできずにハマってしまったので、僕のインプットも兼ねて今回解決に至った解決策を共有したいと思います。

スクリーンショット 2020-04-19 1.42.13.png

結論

初めに結論から申しますと、今回のエラーの原因はRoute53で取得したドメインを本番環境のnginxの設定ファイル(nginx.conf)に紐付けする作業を行っていなかったために発生してしまいました。

なぜドメインからアクセスできなかったのか?

nginxはserver_nameを見てどのサーバーに振り分けるのかを見ているようなので、nginxの設定ファイルであるnginx.confファイルの「server_name」にRoute53で取得したドメインを記述するという作業を行っていなかったため、アクセスすることができなかったようです。

解決方法

nginx.confファイルの設定を変更してやれば解決できます。

エラー時のnginx.confファイル↓

error_log  /var/www/rails/friends/log/nginx.error.log;
access_log /var/www/rails/friends/log/nginx.access.log;

client_max_body_size 2G;
upstream app_server {
  server unix:/var/www/rails/friends/tmp/sockets/.unicorn.sock fail_timeout=0;
}
server {
  listen 80;
  server_name 18.180.36.193;
  keepalive_timeout 5;
  root /var/www/rails/friends/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/friends/public;
  }
}

この中のserver_nameにRoute53で取得したドメインを追加する必要があります↓

error_log  /var/www/rails/friends/log/nginx.error.log;
access_log /var/www/rails/friends/log/nginx.access.log;

client_max_body_size 2G;
upstream app_server {
  server unix:/var/www/rails/friends/tmp/sockets/.unicorn.sock fail_timeout=0;
}
server {
  listen 80;
  server_name 18.180.36.193 guardians-community.com;
  keepalive_timeout 5;
  root /var/www/rails/friends/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/friends/public;
  }
}

server_nameを複数設定する際は、nameの間を空白で開けてやれば復数設定することができます。
参考記事:Nginx server_nameを複数指定する

以上の設定が完了したら下記コマンドを実行してnginxの設定を上書きします。↓

$ sudo nginx -s reload

これで設定完了です。

この紐付け作業が完了したらドメインからアクセスすることができるようになっているはずです。

スクリーンショット 2020-04-19 11.16.06.png

まとめ

以上で今回僕がハマってしまったRoute53で取得したドメインでアクセスできなかった問題と解決策の共有を終わりたいと思います。

インフラは最近触り始めてばかりで初歩的な間違いではあったのかもしれませんが、今回のエラーのおかげでまた1つインフラに対する知見を増やすことができました。

最後まで読んでいただきありがとうございました。
この記事がどなたかのやくに立ってくれれば幸いです。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?