この記事では、最も人気のあるHTTPサーバーの1つであるNginxの基本的なトラブルシューティングについて説明します。目的は、Nginx構成に存在する可能性のある最も一般的なエラーのいくつかを修正することです。
簡単なコマンドで、Nginx構成ファイルのステータスを確認できます。 $ sudo systemctl config nginx
出力には、構成ファイルが正しいかどうかが表示され、正しくない場合は、ファイルと問題のある行が表示されます。
$ sudo systemctl config nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl config nginx
"worker_connections" directive is not allowed here in /etc/nginx/nginx.conf:12
nginx: configuration file /etc/nginx/nginx.conf test failed
システムで使用可能なサービスコマンドがない場合は、 -t
を使用することを選択できます。 Nginxパラメーター。構成ファイルの構文が正しいかどうかをテストしてから、構成で参照されているファイルを開こうとします。 $ sudo nginx -t
Nginxが実行されていることを確認します
Nginxサービスのステータスを確認するには、次のコマンドを使用できます。 $ sudo systemctl status nginx
汎用コマンドを使用して、サービスのステータスを検証することもできます: $ sudo /etc/init.d/nginx status
ポートが開いていて、サービスがリッスンしていることを確認します
必要なポートが開いていることを確認し、Nginxサービスがそれらをリッスンしていることを確認するには、 lsof
を使用できます。 コマンド、理想的にはデフォルトのポート80および443で。
$ sudo lsof -i :80 -s TCP:LISTEN
nginx 1305 nginx 6u IPv4 1613873 0t0 TCP *:http (LISTEN)
nginx 1305 nginx 7u IPv6 1613874 0t0 TCP *:http (LISTEN)
nginx 1306 nginx 6u IPv4 1613873 0t0 TCP *:http (LISTEN)
nginx 1306 nginx 7u IPv6 1613874 0t0 TCP *:http (LISTEN)
Nginxがリクエストを処理するかどうかを確認する
Nginxが実際に適切なポートをリッスンしている場合、次のステップは、リクエストを処理しているかどうかを確認することです。これは、 curl
を使用して行うことができます。 セットアップがローカルホストでリッスンする場合は、IP、URL、またはローカルホストを使用するツール:
$ curl -i http://127.0.0.1/nginx_status
HTTP/1.1 200 OK
Server: nginx/1.11.1
Date: Wed, 08 Aug 2021 11:36:43 GMT
Content-Type: text/plain
Content-Length: 97
Connection: keep-alive
Active connections: 1
server accepts handled requests
3 3 3
Reading: 0 Writing: 1 Waiting: 0
Nginxサービスの最後のログを確認します。$sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log
Nginxに必要なファイルにアクセスするための適切な権限があることを確認してください。
$ namei -om /usr/share/nginx/html/index.html
f: /usr/share/nginx/html/index.html
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root share
drwxr-xr-x root root nginx
drwxr-xr-x root root html
-rw-r--r-- root root index.html
適用されていない構成ファイルに変更を加えた場合は、サービスをリロードし、新しいNginxプロセスを開始し、古いワーカーを穏やかにシャットダウンして、迅速で積極的なシャットダウンを回避できます。 $ sudo service nginx reload コード> プロセスの終了を待たないクイックシャットダウンの場合は、Nginxを再起動できます。
$ sudo service nginx restart
構成ファイル(通常は /etc/nginx/nginx.conf
) error_log
のログレベルを変更します ディレクティブ:
server {
# stuff
error_log /var/logs/nginx/error.log debug;
# stuff
}
書き換えルールをデバッグして、エラーログで処理結果を確認できます。
server {
# stuff
error_log /var/logs/nginx/error.log notice;
rewrite_log on;
# stuff
}
DNS解決を確認する
/ etc / hosts
に関するルール DNS解決よりも優先されます。 DNSレコードは、次のコマンドで確認できます: $ host -t A website.com
完全なDNS解決も確認できます: $ dig + trace website.com
これらは、Nginxで最も一般的なエラーのいくつかに対するいくつかの基本的なトラブルシューティング手順です。これらの手順で問題が解決しない場合は、Nginxの人気を利用して、ドキュメントを信頼することもできます。