Estou usando o Apache 2.2.15 como um proxy reverso em execução no Scientific Linux 6. Ele está sendo usado para conectar um aplicativo a um servidor remoto, onde o aplicativo que está sendo conectado requer que a solicitação CONNECT seja concluída com o corpo intacto.
O proxy recebe a conexão corretamente:
CONNECT <destinationhost>:6220 HTTP/1.1
Mas o servidor de destino recebe isso:
[17/Jun/2014:15:01:13 +0200] "CONNECT / HTTP/1.1" 400 346 "-" "-"
Então, em algum lugar dentro do proxy, o corpo do CONNECT é "removido"? Todos os outros métodos de solicitação funcionam bem, os problemas surgem apenas ao usar o CONNECT. Isso acontece com o TLS e sem. Todos os cabeçalhos parecem passar corretamente.
Minha configuração de proxy é a seguinte:
<VirtualHost *:80>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://destinationhost:8082/
ProxyPassReverse / http://destinationhost:8082/
</VirtualHost>
Eu tentei a diretiva "AllowCONNECT 6220" e usando proxying RewriteRules, mas eles não parecem fazer a diferença.
Os resultados são os mesmos com um simples teste de telnet, e ao usar o Apache rodando na minha máquina Ubuntu local como proxy. Então, esse comportamento normal para CONNECT e o problema é, na verdade, o aplicativo em execução no destino, esperando uma solicitação CONNECT "malformada"?
Se não, qual poderia ser o problema?