Como ativar o log de solicitações que passam pelo proxy mod


14

Existe uma maneira de registrar solicitações passando pelo proxy mod? Preciso de uma maneira de depurar minha configuração, porque parece que não estou chegando onde deveria estar. Preciso das seguintes informações:

  • cabeçalhos de solicitações recebidas
  • o que está sendo enviado para o destino proxy

Talvez uma pergunta relacionada: existe uma maneira de remover alguns cabeçalhos? Eu tentei o seguinte:

ProxyPass         /proxy/other http://not.under.my.control/
<Location /proxy/other>
   ProxyPassReverse /
   RequestHeader unset Authorization
</Location>

Realmente não sei se está tudo bem, porque não vejo nada.


Eu usaria mitmproxypara esse tipo de depuração.
pintainhos

Respostas:



10

Eu usei dumpio. Coloquei o seguinte em /etc/httpd/conf.d/dumpio.conf:

LoadModule dumpio_module modules/mod_dumpio.so

DumpIOInput On
DumpIOOutput On
DumpIOLogLevel debug

LogLevel debug

Uma parte frequentemente esquecida é configurar o LogLevel para depuração. Sem ele, você realmente não verá nenhuma saída do DumpIO.

A saída do log é gravada no log de erros do host virtual e / ou do servidor.


2
Acabou sendo muito útil para mim. Obrigado! No Ubuntu, fui $ a2enmode dump_iodepois. Adicionei linhas da resposta a uma diretiva VirtualHost. Verifiquei o $ tail -f /var/log/apache2/error.logtempo fazendo pedidos e recebi todas as informações que eu precisava. Depois de concluir a depuração, é melhor desativá-lo $ a2dismode dump_ioe reverter o VirtualHost. Caso contrário, você obterá logs muito inchados.
uKolka

1
A diretiva "DumpIOLogLevel" não existe mais. Um deles tem de conjunto LogLevel dumpio:trace7, conforme descrito no mod_dumpio
David Tonhofer

4

Se você alterar o LogLevel para depuração, ele fornecerá mais detalhes sobre o que está acontecendo no log de erros padrão.

LogLevel debug

Isso lhe dará muitas informações sobre o que está acontecendo.


1
Embora agora eu tenha algumas informações adicionais sobre o proxy no log, as informações que eu gostaria de ver não estão lá. Usando o LogFormat, podemos obter as informações solicitadas de alguma forma?
Kariem

1
Tenha uma volta jogo com LogFormat, Note que você pode usar mod_forensic e mod_security para obter muito mais detalhes
Decado

No apache 2.4, a diretiva LogLevel está no /etc/apache2/apache2.confUbuntu. Parece óbvio, mas levei um segundo para descobrir isso.
precisa saber é o seguinte

2

Você também pode anexar proxy:trace5à sua LogLeveldiretiva existente

Se você tem isso

LogLevel error 

Mude para este

LogLevel error proxy:trace5

Certifique-se de voltar ao normal após o uso. Isso criará enormes arquivos de log rapidamente.


Isso não funciona para o apache 2.2, que esta pergunta está marcada como.
Brian Minton

1

O mod_security pode registrar o corpo e os cabeçalhos da solicitação, entre outras coisas. Ligação


1
A melhor prática é fornecer um resumo conciso. A partir de 2015-08, a ligação parece morto ...
sage

-2

Você pode usar esses logs, mas eles não fornecerão exatamente o que você deseja:

<VirtualHost yourdomain.com> 
    Customlog yourdomain.com-access.log combined 
    ErrorLog yourdomain.com-error.log
# Your other stuff
</VirtualHost>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.