2012-09-03 66 views
10

我有一個運行在Cloudflare後面的網站,它是一個反向代理。這意味着我只能在我的訪問日誌中獲得一個或兩個IP地址。在Apache2訪問日誌中記錄HTTP標頭

但是,Cloudflare確實在請求標頭中提供了訪問者IP地址,我認爲我可以在訪問日誌中記錄日誌而不是標準日誌。

我知道如何使用CustomLog,但是有沒有辦法在Apache訪問日誌中保存HTTP標頭?

謝謝。

回答

17

埃 - 看看該文檔 - http://httpd.apache.org/docs/2.2/mod/mod_log_config.html專門爲

%{Foobar}i 

進入這將淨你:發送的請求頭線(S):

Foobar的內容到 服務器。其他模塊(例如mod_headers)所做的更改會影響此操作。 如果您對大多數 模塊將對其進行修改之前請求標頭的內容感興趣,請使用mod_setenvif將標頭 複製到內部環境變量中,並使用上述的 %{VARNAME}來記錄該值。

所以一個通常會添加像」 ......%{X-轉發-FOR-IP}我到的CustomLog條目。

替換 'X - 轉發,對於-IP' 來whateever一些入門您的CloudFlare服務讓你(這通常是這樣的「」「CF-連接-IP」「」);如

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

關於「的TransferLog」 - 看近的TransferLog指令的注 - 它拿起最近定義的版本。

Dw。