Nginx構成のデバッグ
Sudo nginx -Tを実行して、構文エラーを確認し、問題行を見つけます。 2。sudotail -f /var/log/nginx/error.logを確認して、アクセス許可、ポート、パスなどのランタイムエラーを取得します。 3.カールを使用して応答をテストし、一意のヘッダーを追加して一致する構成ブロックを確認します。 4.セミコロンの欠落、ルートパスのエラー、場所の順序、含まれる範囲のロード、Selinux制限などの一般的な問題のトラブルシューティング。必要に応じて、nginx -Tを使用して、完全な効果的な構成を表示します。正確なポジショニングの後、Nginx構成の問題を効率的に解決できます。
Nginx構成のデバッグは、どこを見て、どのツールを使用するかを知っている場合、イライラする必要はありません。効率的に行う方法は次のとおりです。

✅1。最初に構文を確認します
常にここから開始します - 構文エラーがある場合、nginxはリロードしません。
sudo nginx -t
これにより、構成ファイルがテストされ、次のように表示されます。

- 構文が問題ない場合
- どの構成ファイルがテストされていますか
- エラーのライン番号(例えば、セミコロンの欠落、未閉塞ブロック)
?プロのヒント:リロードする前にこれを実行します。経験豊富なユーザーでさえ忘れてしまう - それはデバッグ時間の90%を節約します。
? 2。エラーログを読み取ります
nginx -t
が通過しますが、nginxがまだ予想どおりに動作しない場合は、ログを確認してください。

sudo tail -f /var/log/nginx/error.log
あなたが見る一般的な問題:
- 許可が拒否されました(たとえば、nginxは
/home/user/www
でファイルを読むことができません) - すでに使用されているポート(
Address already in use
) - 誤解された
root
またはindex
ディレクティブ - SSL証明書パスが間違っているか、許可が開いています
?タイムスタンプを探す- エラーがリロード/起動時に発生することが多いので、すぐにログを見てください。
sudo systemctl reload nginx
? 3。特定の構成ブロックをテストします
サイトがコンテンツを提供していない場合:
- ローカルで
curl
を使用してテストします。curl -i http:// localhost
- どのサーバーブロックnginxが一致しているかを確認します。一定のヘッダーを一時的に追加します。
add_header x-config-test "this-is-my-site";
それから:
curl -i http://yoursite.com | grep x-config-test
ヘッダーが表示されない場合、Nginxは構成ブロックを使用していません。
?§価。一般的な落とし穴(および修正)
- 欠落セミコロン:nginxは厳格です - すべての指令が終了します
;
- 間違ったルートパス:
/var/www/mysite
のような絶対パスを使用してください。 - ロケーションブロックの優先順位:
/
すべてを一致させる - より具体的なもの(/api/
など)を最初に置く - ロードされていないファイルを含める:
include /etc/nginx/conf.d/*.conf;
メインnginx.conf
にあります - Selinux/Apparmor :一部のシステム(Centos/rhelなど)では、セキュリティモジュールのために正しいアクセス許可が失敗しました
ausearch -m avc -ts recent
ボーナス: nginx -T
を使用して、完全な構成をダンプします
nginx -T
最後に解析された構成を表示します。ネストされたブロックを含めるときに非常に便利になり、アクティブなものを伝えるのが難しくなります。
Nginxのデバッグとは、主に最初の明白なもの、つまり構文、ログ、パスを排除することです。それらがきれいになると、通常は90%です。
以上がNginx構成のデバッグの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

HSTSを有効にする方法は、HTTPS Webサイトで厳密な輸送セキュリティ応答ヘッダーを構成することです。特定の操作は次のとおりです。1。nginxは、サーバーブロックにadd_headerディレクティブを追加します。 2.Apacheは、構成ファイルまたは.htaccessにヘッダーディレクティブを追加します。 3.IISは、web.configにカスタムヘッダーを追加します。サイトがHTTPSを完全にサポートし、パラメーターには最大年齢(有効期間)、含まれるサブドメイン(サブドメインが有効)、プリロード(プリロードリスト)が含まれるようにする必要があります。

NGINXのSSL/TLSサービスを構成するには、証明書と秘密キーを準備し、サーバーブロックに関連するパラメーターを設定する必要があります。 1.証明書ファイルを準備:.crtまたは.pem形式と対応する.key秘密キーで証明書を取得します。 Let'sencryptまたはコマーシャル組織を使用してそれを発行し、中間証明書をバンドルファイルにマージできます。 2。サーバーブロックの構成:listen443ssl、ssl_certificateパスを/etc/ssl/example.com.crt、およびssl_certificate_keyパスAs /etc/ssl/example.com.kをサイト構成ファイルに定義します。

NGINX構成を変更した後、最初に構文をテストしてからサービスをリロードする必要があります。 1. nginx-Tを使用して、構成ファイルの構文を確認します。プロンプト「Syntaxisok」と「testissuccessful」がプロンプトされた場合、それは正しいことを意味します。エラーがある場合、特定の問題行が表示されます。 2.構成ファイルのアクセス許可が高い場合、sudonginx-tを使用して実行する必要があります。 3.テストが実際にロードされていることを確認してください。 Nginx-T-C/path/to/your/nginx.confを介してパスを指定するか、メインプロセスでPS-EF | grepnginxを介して使用される構成ファイルを表示できます。 4。テストに合格したら、sudonginx-sreloadオーバーロードサービスを実行して、新しい構成を有効にします

tosetupannginxserverblock、first -understanditstandtureusionstheServerdirectiontientivestingtingslikelisten、server_name、andlocation;

^〜モディファイアは、指定されたプレフィックスのURLの一致を優先し、その後の正規表現が一致しないようにするために、nginxで使用されます。要求されたURLがこのプレフィックスで始まると、Nginxはこのブロック構成をすぐに採用し、すべての正規式(場所〜または場所〜*)チェックをスキップしますが、=の完全な一致は必要ありません。 1.特定のパス処理が必要な状況(静的リソースなど)に適しており、通常のルールに上書きされないようにします。 2。パフォーマンスを改善し、特定のルールが最初に実行されるようにするためによく使用されます。 3.典型的なシナリオには、サービス画像、スクリプト、または内部APIルーティングが含まれます。他の修飾子と比較してください。4。通常のプレフィックスマッチは、通常を確認し続けます。 5.正確な一致は、フルパスにのみ適用されます。 6.通常の試合が入ります

インストールされているnginxバージョンをチェックする最も簡単な方法は、端末またはシェルでコマンドを実行することです。まず、Nginx-VまたはNginx-Vコマンドを使用して、基本バージョン番号または詳細情報を表示します。 「commandnotfound」がプロンプトされた場合、正しくインストールされないか、システムパスにない場合があります。第二に、Linux Systemsでは、SystemCtlstatusNginxを介してサービスステータスを確認してバージョン情報を取得できます。最後に、コマンドラインアクセス許可がない場合は、サーバー情報パネル、ホスティングプロバイダーのドキュメント、またはHTTP応答ヘッダー(サーバー:Nginx/1.22.1など)を介してバージョンを間接的に確認できますが、このメソッドはserver_tokenを有効にするかどうかによって制限されます。

toconfigureabackupserverinnginx、「バックアップ」パラメーターターベルリンテウップストリームブロックを追加し、1.DefineTheUpStraveStraveStraveStraveStraveStraveStrafiCを保証します

proxy_passはnginxで使用されてクライアント要求をバックエンドサーバーに転送します。そのコアロールは、nginxが逆プロキシとしてHTTPリクエストを処理できるようにすることです。 1.指定されたバックエンドサービス(ポート3000で実行されているnode.jsアプリケーションなど)にユーザーリクエストを受信して転送します。 2。NGINXは、バックエンドで返された応答を処理し、ユーザーに送り返します。同時に、プロセスにキャッシュ、圧縮、またはアクセス制御機能を追加できます。 3.設定するときは、パスマッチングとテールスラッシュの関係に注意して、マッチングパーツのパスを剥がすかどうかを判断します。 4.バックエンドが正しいコンテキスト情報を取得するようにするために、標準のプロキシヘッダーの設定(ホスト、X-Real-IPなど)と協力する必要があります。 5.一般的な問題にはパスが含まれません
