modプロキシを通過するリクエストのロギングを有効にするにはどうすればよいですか


14

modプロキシを通過するリクエストをログに記録する方法はありますか?私は自分がいるべき場所に到達していないように見えるので、設定をデバッグする方法が必要です。次の情報が必要です。

  • 着信リクエストのヘッダー
  • プロキシターゲットに送信されるもの

おそらく関連する質問:いくつかのヘッダーを削除する方法はありますか?私は次を試しました:

ProxyPass         /proxy/other http://not.under.my.control/
<Location /proxy/other>
   ProxyPassReverse /
   RequestHeader unset Authorization
</Location>

私は何も見えないので、これが大丈夫かどうか本当にわかりません。


mitmproxyこの種のデバッグに使用します。

回答:



10

dumpioを使用しました。私は以下を入れます/etc/httpd/conf.d/dumpio.conf

LoadModule dumpio_module modules/mod_dumpio.so

DumpIOInput On
DumpIOOutput On
DumpIOLogLevel debug

LogLevel debug

忘れられがちな部分は、LogLevelをデバッグに設定することです。これがないと、実際にはDumpIO出力が表示されません。

ログ出力は、仮想ホストまたはサーバー、あるいはその両方のエラーログに書き込まれます。


2
それは私にとって非常に役立つことがわかりました。ありがとう!Ubuntuで行った$ a2enmode dump_io後、VirtualHostディレクティブへの回答から行を追加しました。$ tail -f /var/log/apache2/error.logリクエスト中にチェックアウトし、必要な情報をすべて入手しました。デバッグが完了したら$ a2dismode dump_io、VirtualHostを無効にして元に戻すことをお勧めします。そうでなければ、非常に肥大化したログを取得します。
uKolka 14年

1
ディレクティブ「DumpIOLogLevel」はもう存在しません。mod_dumpioLogLevel dumpio:trace7
David Tonhofer

4

デバッグするためにLogLevelを変更すると、標準エラーログで何が起こっているかについての詳細が表示されます。

LogLevel debug

これにより、何が起こっているかについての十分な情報が得られます。


1
ログにはプロキシに関する追加情報がかなりありますが、見たい情報はありません。LogFormatを使用して、要求された情報を何らかの方法で取得できますか?
カリーム

1
LogFormatディレクティブで遊んを持って、あなたはより多くの細部を得るためにmod_forensicとmod_securityを使用できることに注意してください
Decado

Apache 2.4では、LogLevelディレクティブは/etc/apache2/apache2.confUbuntuにあります。当たり前のように思えますが、それを理解するのに少し時間がかかりました。
Shrout1

2

proxy:trace5既存のLogLevelディレクティブに追加することもできます

これがあれば

LogLevel error 

これに変更

LogLevel error proxy:trace5

使用後は必ず通常に戻してください。これにより、巨大なログファイルが高速で作成されます。


これは、この質問がタグ付けされているApache 2.2では機能しません。
ブライアンミントン

1

mod_securityは、リクエストの本文とヘッダーなどを記録できます。リンク


1
ベストプラクティスは、簡潔な要約を提供することです。2015-08現在、リンクは死んでいるようです...-
セージ

-2

これらのログを使用できますが、必要な情報を正確に提供することはできません。

<VirtualHost yourdomain.com> 
    Customlog yourdomain.com-access.log combined 
    ErrorLog yourdomain.com-error.log
# Your other stuff
</VirtualHost>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.