設定ファイル内の nginx 書き換えルールをデバッグする最良の方法は何ですか?

設定ファイル内の nginx 書き換えルールをデバッグする最良の方法は何ですか?

Apache から nginx に移植する必要がある書き換えルールがたくさんあります。

書き換えルールと「if」条件が期待どおりに機能しているかどうかを確認できないため、これはかなり面倒なプロセスです。

Apache には書き換えモジュールのデバッグ機能がありました。nginx では何ができるでしょうか?

答え1

有効にするrewrite_log:

rewrite_log on;

デバッグレベルを設定するerror_log指令:

error_log /var/log/nginx/localhost.error_log notice;

答え2

デバッグサポートを有効にする次に、error_log でデバッグ レベルを設定します。

error_log   /var/log/nginx/error.log debug;

これで、ログを追ってリクエストを送信できます。おそらく、必要以上に詳細な情報があるかもしれませんが、それが命を救うこともあります。

ああ、知っておくべきなのは悪であれば少なくとも場所の文脈では...

答え3

ログと組み込みのデバッグサポートを使用するのが間違いなく最も合理的な方法です。初期段階でルーティングのデバッグを素早く行い、ブラウザ/クライアントのみでやりとりしたい場合は、4xx「テキスト」を返します。指示文は、ほとんど手間をかけずに、あなたが望む答えを得られるかもしれません。例えば、

http {
  server {
    listen 80;
    server_name mydomain.net;
    return 404 "mydomain 80 route";
  }

  server {
    listen 80 default_server;
    return 404 "default 80 route";
  }
}

返された Web ページ内のテキストには、リクエストによってserverトリガーされたブロックが示されます。

答え4

もう 1 つの良いデバッグ手順は、Nginx ルールが考慮されているかどうかを確認することです。

location /test {
    return 200 'My test';
}

関連情報