我们有一个使用 DNS 通配符的应用程序,即 *.app.example.com。我们在 Ubuntu Hardy 上使用 Apache 2.2。Apache 配置的相关部分如下。
在 /etc/apache2/httpd.conf 中:
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vlog
Run Code Online (Sandbox Code Playgroud)
在 /etc/apache2/sites-enabled/app.example.com 中:
ServerName app.example.com
ServerAlias *.app.example.com
...
CustomLog "|/usr/sbin/vlogger -s access.log /var/log/apache2/vlogger" vlog
Run Code Online (Sandbox Code Playgroud)
客户使用自己的 URL 访问此应用程序,例如 company1.app.example.com、company2.app.example.com 等。
此前,%v
在LogFormat
指令将匹配客户端请求的主机名,我们会得到几个子目录下的/ var /日志/的Apache2 /题外话对应于使用各种客户端的URL。
现在,%v
似乎与该ServerName
值匹配,因此我们只能在 /var/log/apache2/vlogger/app.example.com 下获得一个日志。这破坏了我们的日志文件分析,因为日志文件没有表明日志与哪个客户端相关。
我可以通过将其更改为以下内容LogFormat
来轻松解决此问题:
LogFormat "%{Host}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vlog
Run Code Online (Sandbox Code Playgroud)
这将使用 HTTP Host: 标头告诉 vlogger 在哪个子目录中创建日志,一切都会好起来的。
我唯一担心的是这在过去有效,我找不到任何迹象表明这最近发生了变化。
有没有其他人使用类似的配置,即通配符 + vlogger 并使用%v
?它工作正常吗?
还有%V(注意上限)和useCanonicalName选项
归档时间: |
|
查看次数: |
6015 次 |
最近记录: |