Apache2 日志中的服务器名称

Posted

技术标签:

【中文标题】Apache2 日志中的服务器名称【英文标题】:ServerName in Apache2 logs 【发布时间】:2018-09-03 14:24:14 【问题描述】:

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

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

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

【问题讨论】:

你需要两个虚拟主机登录到同一个文件吗? 【参考方案1】:

我从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 \"%Refereri\" \"%User-agenti\""

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

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

【讨论】:

以上是关于Apache2 日志中的服务器名称的主要内容,如果未能解决你的问题,请参考以下文章

无法使用端口 443 设置 https 站点。rsa 服务器证书公用名 (cn) 与 SSl 错误日志中的服务器名称不匹配

如何在 Apache2 服务器上启用日志级别调试 [关闭]

NameError:名称“TypeError”未在 Apache 日志中定义

如何在Apache日志中记录处理时间

RHEL 上的 Chef Apache2 配方:默认配方中未定义服务器名称

如何查看Apache错误日志