質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1959閲覧

EC2にNginxを導入し/etc/nginx/conf.d/rails.confを編集し、Nginxを再起動すると起動できなくなった。

yutaro_0529

総合スコア12

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/11/09 05:31

編集2020/11/09 08:22

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
EC2に個人開発したアプリを手動でデプロイし、
Nginxを導入し使えるようにしたい。

発生している問題・エラーメッセージ

2020/11/09 01:52:51 [emerg] 12812#0: unknown directive "xx.xxx.xx.xx;" in /etc/nginx/conf.d/rails.conf:14 2020/11/09 05:00:51 [emerg] 15950#0: unknown directive "xx.xxx.xx.xx;" in /etc/nginx/conf.d/rails.conf:14 /var/log/nginx/error.log (END)

修正後↓

EC2ターミナル

1[ec2-user@ip-172-31-45-251 ~]$ nginx -t 2nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) 32020/11/09 08:16:16 [warn] 16862#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:5 4nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 52020/11/09 08:16:16 [emerg] 16862#0: open() "/run/nginx.pid" failed (13: Permission denied) 6nginx: configuration file /etc/nginx/nginx.conf test failed 7[ec2-user@ip-172-31-45-251 ~]$ sudo systemctl start nginx 8[ec2-user@ip-172-31-45-251 ~]$ sudo systemctl reload nginx 9[ec2-user@ip-172-31-45-251 ~]$ 10 11おそらく問題なくnginxを起動することができたと思います。

###該当のソースコード

/etc/nginx/conf.d/rails.conf upstream app_server { # Unicornと連携させるための設定 server unix:/var/www/nostalgia/tmp/sockets/unicorn.sock; } # {}で囲った部分をブロックと呼ぶ。サーバの設定ができる server { # このプログラムが接続を受け付けるポート番号 listen 80; # 接続を受け付けるリクエストURL ここに書いていないURLではアクセスできない server_name Elastic IP;xx.xxx.xx.xx; # クライアントからアップロードされてくるファイルの容量の上限を2ギガに設定。デフォルトは1メガなので大きめにしておく client_max_body_size 2g; # 接続が来た際のrootディレクトリ root /var/www/nostalgia/public; # assetsファイル(CSSやJavaScriptのファイルなど)にアクセスが来た際に適用される設定 location ^~ /assets/ { gzip_static on; expires max; add_header Cache-Control public; } try_files $uri/index.html $uri @unicorn; location @unicorn { 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; } ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "/etc/nginx/conf.d/rails.conf" 36L, 1216C

↓修正後のコード

Nginx

1upstream app_server { 2 # Unicornと連携させるための設定 3 server unix:/var/www/nostalgia/tmp/sockets/unicorn.sock; 4} 5 6# {}で囲った部分をブロックと呼ぶ。サーバの設定ができる 7server { 8 # このプログラムが接続を受け付けるポート番号 9 listen 80; 10 # 接続を受け付けるリクエストURL ここに書いていないURLではアクセスできない 11 server_name xx.xxx.xx.xx; 12 13 # クライアントからアップロードされてくるファイルの容量の上限を2ギガに設定。デフォルトは1メガなので大きめにしておく 14 client_max_body_size 2g; 15 16# 接続が来た際のrootディレクトリ 17 root /var/www/nostalgia/public; 18 19# assetsファイル(CSSやJavaScriptのファイルなど)にアクセスが来た際に適用される設定 20 location ^~ /assets/ { 21 gzip_static on; 22 expires max; 23 add_header Cache-Control public; 24 } 25 26 try_files $uri/index.html $uri @unicorn; 27 28 location @unicorn { 29 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 30 proxy_set_header Host $http_host; 31 proxy_redirect off; 32 proxy_pass http://app_server; 33 } 34 35 error_page 500 502 503 504 /500.html; 36

試したこと

エラーログをみてアプリのIアドレスの入力を間違えていたのかも考え、
/etc/nginx/conf.d/rails.confを再度編集し、
Elastic IPアドレスを確認し書き直してみましたが、Elastic IPアドレスには問題がなさそうでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

2020/11/09 01:52:51 [emerg] 12812#0: unknown directive "xx.xxx.xx.xx" in /etc/nginx/conf.d/rails.conf:14

間違ってるのは記載の仕方です。

nginx

1server_name xx.xxx.xx.xx;

のように記載すればよいかと。
※実IPを書くのはどうかと思ったのでマスクしてます。

nginx(Apacheだとしてもそうですが)の設定をいじったときは、必ず設定をテストしてから設定を読み込むようにしてください。

nginxの場合

nginx -t

で設定をテストでき、文法などにエラーがある場合はその旨表示されます。(sudoをつけて実行したほうが無難かもしれません)

投稿2020/11/09 06:46

yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yutaro_0529

2020/11/09 07:40

ご回答していただきありがとうござます! まずIPにマスクをつけて編集し直しました、これから記載の仕方を修正させていただきます。
yutaro_0529

2020/11/09 08:24

yu_1985さん ご回答いただいた内容で修正しnginx -tを修正後、実行し、 下記のコマンドを実行するとおそらく問題なく処理されていると思いました。 [ec2-user@ip-172-31-45-251 ~]$ sudo systemctl start nginx [ec2-user@ip-172-31-45-251 ~]$ sudo systemctl reload nginx [ec2-user@ip-172-31-45-251 ~]$ こちらで無事に導入できていますでしょうか。
yu_1985

2020/11/09 09:13

とりあえずnginxの起動時にエラーは出ていなさそうなので、あとはアクセスしてどうなるかです。 補足しておきますが sudo systemctl start nginx こちらは起動していないプロセスを起動するコマンドなので毎回打っても仕方ありません。 起動中のnginxに設定を読み込ませるには sudo systemctl reload nginx を使うか、一度nginxのプロセスを落としても問題なければ sudo systemctl restart nginx としてください(その際、改めてReloadコマンドを打つ必要はありません)
yutaro_0529

2020/11/09 12:22

yu_1985さん ありがとうございます。 rails sを起動すると起動できませんでした。 ttps://aws.amazon.com/amazon-linux-2/ [ec2-user@ip-172-31-45-251 ~]$ cd /var/www/nostalgia [ec2-user@ip-172-31-45-251 nostalgia]$ RAILS_SERVE_STATIC_FILES=1 unicorn_rails -c config/unicorn.rb -E production -D master failed to start, check stderr log for details [ec2-user@ip-172-31-45-251 nostalgia]$ tail log/unicorn_error.log tail: `log/unicorn_error.log' を 読み込み用に開くことが出来ません: No such file or directory [ec2-user@ip-172-31-45-251 nostalgia]$ エラーかと思い、 ps aux | grep unicorn を実行し動いているものを確認すると起動したままだったと気がつくことができ、 無事にアクセス出来ました。 [ec2-user@ip-172-31-45-251 nostalgia]$ ps aux | grep unicorn ec2-user 13576 0.0 9.7 459996 98388 ? Sl 03:12 0:01 unicorn_rails master -c config/unicorn.rb -E production -D ec2-user 13584 0.0 9.3 462040 94300 ? Sl 03:12 0:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D ec2-user 17962 0.0 0.0 119436 908 pts/0 S+ 12:18 0:00 grep --color=auto unicorn [ec2-user@ip-172-31-45-251 nostalgia]$ 補足情報もありがとうございます!! 学習を引き続き頑張ります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問