個人アプリ開発 AWS Nginx導入・エラー解決

本番環境を確認。
ログイン時・未ログイン時で一通り操作を行い、出てきたエラーを解決していきました。

躓き1

ログアウト時のエラー

ログアウトしようとすると、下記エラーが出ました。
”The page you were looking for doesn't exist.
You may have mistyped the address or the page may have moved.”

他にも”いいね”しようとした時も同様のエラーが。

unicornを停止中にrake assets:precompile
→不可

・ログを確認すると、HTTPメソッド[Post][Delete]を[Get]で探しにいっている。
→エディタでビューを確認するが、ちゃんと指定はできている。

・さらに調べたところ、上記はjsでエラーがある場合に起こる不具合らしい
→consoleでjsを確認し、エラーを確認。よく確認すると、ローカルでもエラーが出ていました!
→不要な記述があった為削除し、ローカルで修正

・ローカルの修正をpushし、本番環境でgit pullするが、コンソールのエラーが消えず。
→アセットをプリコンパイルし、エラーの解消を確認できました!

[ec2-user@XXX <リポジトリ名>]$ bundle exec rake assets:precompile RAILS_ENV=production

▶︎動作確認。ログアウト、いいね機能なども問題なし。

Nginxの導入と設定

Webサーバの役割:
1.静的なコンテンツをレスポンスとしてクライアントに返す処理
2.動的なコンテンツ生成をアプリケーション本体に依頼する処理
3.アプリケーションサーバから返ってくる処理結果をレスポンスとしてクライアントに返す処理

アプリケーションサーバ
動的なコンテンツを生成し、処理結果をWebサーバに返すという役割を果たす

Nginxをインストール
[ec2-user@XXX]$ sudo yum -y install nginx
Nginxの設定ファイルを編集

下記手順で設定

1. rails.confファイルをvimで開く

[ec2-user@XXX]$ sudo vim /etc/nginx/conf.d/rails.conf

2. VimでNginxの設定を編集

3. nginxの権限を変更
POSTメソッドでもエラーが出ないようにするために、下記のコマンドも実行

[ec2-user@XXX]$ cd /var/lib
[ec2-user@XXX]$ sudo chmod -R 775 nginx  

4. Nginxを再起動して設定ファイルを再読み込み

[ec2-user@XXX]$ cd ~
[ec2-user@XXX]$ sudo service nginx restart
unicorn.rbを修正

1. ローカルでunicorn.rb修正

# 修正前
listen 3000

# 修正後
listen "#{app_path}/tmp/sockets/unicorn.sock"

2. ローカルで編集したファイルをリモートへpush

3. ローカルの変更点を本番環境へ反映

4. Unicornを再起動

躓き2

エラー
”このサイトにアクセスできません”
→Elastic IPの後に:3000をつけていた


下記が表示される
”Welcome to nginx on the Amazon Linux AMI!”
→nginxの設定の記載ミス。タイプミスがあった。


デプロイ時のエラー解決は仮説を立てづらく、本当に苦戦しました。
ただここまで来て諦めたくなかったし、絶対なんとかできるはず!と思ってたくさん検索してなんとかデプロイまで漕ぎつけました。
苦労した分、1人で解決できて自信になりました。
日々精進していきます。