% v é e sempre foi o nome canônico do vserver, ive apenas verifiquei os manuais para ambos os 1.3, 2.0 e 2.2 e todos eles dizem
%...v: The canonical ServerName of the server serving the request.
Temos um aplicativo que usa um caractere curinga de DNS, por exemplo, * .app.example.com. Estamos usando o Apache 2.2 no Ubuntu Hardy. As partes relevantes da configuração do Apache são as seguintes.
No /etc/apache2/httpd.conf:
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vlog
Em /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
Os clientes acessam este aplicativo usando seu próprio URL, por exemplo, company1.app.example.com, company2.app.example.com, etc.
Anteriormente, a %v
na diretiva LogFormat
corresponderia ao nome do host da solicitação do cliente e obteríamos vários subdiretórios em / var / log / apache2 / vlogger correspondente às várias URLs de clientes em uso. / p>
Agora, %v
parece estar correspondendo ao valor ServerName
, portanto, só obtemos um registro em /var/log/apache2/vlogger/app.example.com. Isso quebra nossa análise de arquivo de log porque o arquivo de log não tem indicação de qual cliente o log está relacionado.
Posso corrigir isso facilmente alterando o LogFormat
para isso:
LogFormat "%{Host}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vlog
Isso usará o cabeçalho HTTP Host: para informar ao vlogger qual subdiretório criar os logs e tudo ficará bem.
A única preocupação que tenho é que isso funcionou no passado e não consigo encontrar qualquer indicação de que isso tenha mudado recentemente.
Alguém mais está usando uma configuração semelhante, por exemplo, curinga + vlogger e usando %v
? Está funcionando bem?
Tags apache-2.2