Nginxでグローバルlocation
を設定しようとしています。 PHP fastcgiを必要とするスクリプトを除いて、現在は完全に機能しています。404を実行しています。
アクセスしている正確なパスを確認する方法はありますか?これを少しデバッグして、何が間違っているのかを理解することができますか?
FastCGIはプログラムではなくプロトコルであるため、FastCGIのアクセスログはありません。 PHP fastcgiハンドラーをデバッグするために、私は通常strace
に頼りました-通常、アクセスしようとしているファイルが表示され、その方法を理解するのは難しくありませんNginxのリクエスト処理デバッグロギングも多くの場合有益です。
これにstraceを使用するのは非常に簡単です。PHP FCGIワーカーをstraceし、-e trace=read,write
を使用した読み取り/書き込み呼び出しに制限します。-s 4096
を使用して文字列の印刷サイズを増やすこともお勧めです。最初の数バイトだけではなく、FCGIパケット全体を取得します。
もう1つの方法は、error_logディレクティブでデバッグモードを有効にすることです。詳細は http://wiki.nginx.org/CoreModule#error_log を参照してください
error_log error.log debug;
nginx内で何が起こるかについてのより多くの情報を生成しますが、fastcgiは生成しません。
http://wiki.nginx.org/Debugging に関する詳細情報もあります。