12

リバースプロキシであるCloudflareの背後で実行されているWebサイトがあります。これは、アクセスログで取得するIPアドレスが1つか2つしかないことを意味します。

ただし、Cloudflareはリクエストヘッダーに訪問者のIPアドレスを提供します。これは、アクセスログに標準のIPアドレスの代わりにログに記録できると思います。

使用方法は知ってCustomLogいますが、ApacheアクセスログにHTTPヘッダーを保存する方法はありますか?

ありがとう。

4

1 に答える 1

20

はい-ドキュメントをご覧ください-http://httpd.apache.org/docs/2.2/mod/mod_log_config.html 具体的には

%{Foobar}i  

どちらがあなたをネットしますか:

サーバーに送信されたリクエストのFoobar:ヘッダー行の内容。他のモジュール(mod_headersなど)によって行われた変更は、これに影響します。ほとんどのモジュールがリクエストヘッダーを変更する前のリクエストヘッダーに関心がある場合は、mod_setenvifを使用してヘッダーを内部環境変数にコピーし、その値を上記の%{VARNAME}eでログに記録します。

したがって、通常、「...%{X-Forwarded-For-IP}i」のようなエントリをCustomLogエントリに追加します。

'X-Forwarded-For-IP'を、cloudflareサービスが取得するものに置き換えます(通常は'' "CF-Connecting-IP"''のようなものです)。例えば

 LogFormat "%v %{CF-Connecting-IP}i (via cloudflare:%h) %l %u %t \"%r\" %>s %b" cloudflare
 CustomLog "|rotatelog.. etc" cloudflare

'transferlog'(TransferLogディレクティブの近くの注記を参照)に関しては、最新の定義済みバージョンを取得します。

Dw。

于 2012-09-03T14:17:59.697 に答える