Я использую Apache 2.2.15 в качестве обратного прокси-сервера, работающего в Scientific Linux 6. Он используется для подключения приложения к удаленному серверу, где приложение, к которому подключается, требует, чтобы запрос CONNECT прошел с неповрежденным телом.
Прокси корректно принимает соединение:
CONNECT <destinationhost>:6220 HTTP/1.1
Но целевой сервер получает это:
[17/Jun/2014:15:01:13 +0200] "CONNECT / HTTP/1.1" 400 346 "-" "-"
То есть где-то внутри прокси тело CONNECT "зачищено"? Все остальные методы запроса работают нормально, проблемы возникают только при использовании CONNECT. Это происходит как с TLS, так и без него. Кажется, все заголовки проходят правильно.
Моя конфигурация прокси выглядит следующим образом:
<VirtualHost *:80>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://destinationhost:8082/
ProxyPassReverse / http://destinationhost:8082/
</VirtualHost>
Я пробовал использовать директиву AllowCONNECT 6220 и проксировать с помощью RewriteRules, но, похоже, это не имеет значения.
Результаты такие же, как при простом тесте telnet, так и при использовании Apache, запущенного на моем локальном компьютере с Ubuntu в качестве прокси. Так является ли это нормальным поведением для CONNECT, и проблема на самом деле заключается в том, что приложение, работающее в пункте назначения, ожидает «некорректного» запроса CONNECT?
Если нет, то в чем может быть проблема?