修改 Apache 中的 LogFormat

Min*_*lla 5 log-files logging apache-2.4

我需要修改 Apache 中的 LogFormat 以添加X-Forwarded-For标头并记录客户端的真实 IP。我尝试在httpd.conf文件中编辑该内容,但随后发现 LogFormat 的两个单独部分。所以我不确定它们是否重复,是否应该删除其中任何一个,并且我不知道要编辑其中哪些,或者应该全部编辑。我需要一些建议。

这是第一部分:

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    CustomLog "logs/access_log" common

    <IfModule logio_module>
        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

    </IfModule>

</IfModule>
Run Code Online (Sandbox Code Playgroud)

第二部分:

<IfModule mod_log_config.c>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent

    CustomLog logs/access_log common

</IfModule>
Run Code Online (Sandbox Code Playgroud)

我不知道第一部分和第二部分有什么区别。我可以看到两部分中的两行是重复的。那么,我应该编辑哪一部分呢?从一个部分删除重复的线条并保留另一部分是否安全?我可以将不重复的行合并到一个部分中吗?谢谢。

Dro*_*096 0

根据apache 文档,这两个部分是等效的:

Description:    Logging of the requests made to the server
Status: Base
Module Identifier:  log_config_module
Source File:    mod_log_config.c
Run Code Online (Sandbox Code Playgroud)

删除(或注释掉)您不喜欢使用的那个,否则如果出于某种原因您要更改它们的顺序(因此优先级),您稍后会遇到各种麻烦。