Apache2 日志中的 ServerName

ServerName in Apache2 logs

我 运行 apache2.4 在我的 Ubuntu 16.04 机器上。 我在 /etc/apache2/sites-available 中设置了两个 Document root,每个都有不同的 ServerName。无论如何也可以配置日志以捕获 ServerName,因为我想知道发出请求或记录 DocumentRoot。

<VirtualHost *:80>
        ServerName www.first.com
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/first
        LogFormat "%{Host}i%U%q" combined
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我已经在同一个 Ubuntu 框中将 www.first.com 设置为 127.0.0.1,并且我正在尝试从同一个框访问 www.first.com。 access.log 仍然没有显示 www.first.com。 有什么想法吗?

我从 Custom Log Formats 章节中了解到,您需要 %v 格式字符串:

%v  The canonical ServerName of the server serving the request.

这意味着像这样的虚拟主机:

ServerName example.com
ServerAlias example.net
ServerAlias example.org

...无论入口点如何,总是记录为 example.com

另外,标准的combined昵称是这样的:

"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""

您当然可以编辑它,但这有点令人困惑。您可能想要分配一个不同的名称,如 LogFormat 示例中所示:

LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common