GNU/Linux >> Linux の 問題 >  >> Linux

基本的なNginxのトラブルシューティング

基本的なNginxのトラブルシューティング

この記事では、最も人気のある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の人気を利用して、ドキュメントを信頼することもできます。


Linux
  1. Nginxを使用してリダイレクトする方法

  2. nginx-413リクエストエンティティが大きすぎます

  3. 5Linuxネットワークのトラブルシューティングコマンド

  1. Ubuntu16.04Linuxでの基本的なPHP7とNginxの構成

  2. 基本的なアプリケーションプールのトラブルシューティング

  3. 基本的なNginxのトラブルシューティング

  1. NGINXでETagを無効にする方法

  2. cronジョブのトラブルシューティング

  3. NginxをFedoraにインストールする