【Webサーバー】Nginxが正常に起動されているか確認する

投稿日 2019年5月29日 >> 更新日 2023年3月3日

サーバー構築に不慣れな初学者の場合、割と見様見真似で適当な設定にしがちだったりちょっとしたミスに気付かずに過ごしてしまう事もある。

なのでもしもの時のために「どこで」ミスが起こっているのかを特定するためにも各種操作を最低限知っておくと良いと思ったので紹介していこうと思います。

実行環境

実行環境
CentOS7
Nginx
Python 3

Nginxが表示されるか確認

nginxの設定は終えていると仮定して、直接ブラウザからIPアドレスもしくわドメインを検索してみる。

詳細な情報

nginx.conf下の構文チェックをしてみる。


$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

ターミナルにてcurlコマンドを打ち、urlのページ詳細を確認できる。なおオプションにcurl -Iとすることでhead部分だけの情報を受け取れる。


# ページ全体のhtml取得
$ curl example.com

# ページのhead部分のみ取得
$ curl -I example.com

仮にexample.comの情報が返ってくればnginxは動いている事になる。

プロセス・ポートが起動しているか確認

サーバーへログインしてnginxプロセスの存在を確認する。psとgrepコマンドを組み合わせると便利。


$ ps ax | grep nginx
 2195 ?  Ss  0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
22678 ?  S   0:03 nginx: worker process

設定にもよるが、masater process と worker process があれば OK 。
worker process の数は環境によって異なるので複数存在していても問題なし。

nginx が利用するポートについても確認しておきます。

サーバーが待受中のポートを ss -natu コマンドで表示し、grep で絞り込みます。


$ ss -natu | grep LISTEN
tcp    LISTEN     0      128   :::80   :::*

HTTP の場合は「80」番ポート、HTTPS の場合は「443」番ポートがあるかを確認。

nginxのエラーログ・バックエンドを確認

nginx のプロセスやポートに問題がない場合、エラーログを確認しましょう。

初期設定の場合、エラーログは /var/log/nginx/error_log にある。(もしくわ/var/log/nginx/error.log)


# catコマンドにて内容を確認
$ sudo cat /var/log/nginx/error_log

$ sudo cat /var/log/nginx/error.log

下記のエラーが発生している場合、nginx ではなくバックエンドのサービスに問題があります。

アプリケーションサーバーのgunicorn などを確認しましょう。

upstream timed out

Pythonなど、プログラム側の不具合でエラーとなっている場合もあります。

以下のようなメッセージが出力されていれば、Python の記述ミスを疑いましょう。

Python Parse error:  syntax error, unexpected

nginx に原因がある場合は、サーバー側の設定で対応できることが殆どです。

サーバー内のプロセス状況・ポート使用状況に注意して調査しましょう。

最後までご覧いただきありがとうございます。

一覧へ戻る