如何为我的Apache 2.4 VirtualHost编写条件CustomLog语句?

问题描述 投票:0回答:1

我正在使用以下版本的Apache(2.4)...

$ sudo apachectl -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Apr 24 2019 13:45:48

我想在我的虚拟主机块中编写自定义日志指令,以使主机标头与我的域匹配,转到一个日志,而所有其他标题转到另一个日志...

<VirtualHost *:80>
    ServerName mydomain.com

    # Use the Host header to determine where to log
    # Use the Host header to determine how to respond. 
    CustomLog /var/log/httpd/access_log "%h %l %u %t \"%r\" %>s %b" expr="%{HTTP_HOST} == 'mydomain.com'"
    CustomLog /var/log/httpd/garbage_access_log "%h %l %u %t \"%r\" %>s %b" expr="%{HTTP_HOST} != 'mydomain.com'"

    Alias /static /var/www/html/frontpage/static
    <Directory /var/www/html/frontpage/static>
        Require all granted
    </Directory>

    # Next, add the following directory block
    <Directory /var/www/html/frontpage>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess frontpage python-home=/var/www/html/venv python-path=/var/www/html
    WSGIProcessGroup frontpage
    WSGIScriptAlias / /var/www/html/frontpage_project/wsgi.py
</VirtualHost>

但是,以上产生此错误

$ sudo apachectl configtest
AH00526: Syntax error on line 6 of /etc/httpd/conf.d/mydomain.conf:
CustomLog takes two or three arguments, a file name, a custom log format string or format name, and an optional "env=" or "expr=" clause (see docs)

如何正确设置自定义日志语句?

logging configuration virtualhost apache2.4
1个回答
0
投票

我认为应将整个表达式与“ expr =”,即:]一起引用。

CustomLog /var/log/httpd/access_log "%h %l %u %t \"%r\" %>s %b" "expr=%{HTTP_HOST} == 'mydomain.com'"
CustomLog /var/log/httpd/garbage_access_log "%h %l %u %t \"%r\" %>s %b" "expr=%{HTTP_HOST} != 'mydomain.com'"

http://httpd.apache.org/docs/current/expr.html

© www.soinside.com 2019 - 2024. All rights reserved.