прокси-сервер apache с HTTPS на HTTP с данными POST

У меня есть мобильное приложение, загружаемое на https://mydomain.com/files/incoming_files.php и https://mydomain.com/api/v2/incoming_files.php

Ubuntu 11.04, Apache / 2.2.17

Время ожидания некоторых загрузок истекло при подтверждении связи SSL. Поэтому я пытаюсь проксировать запросы загрузки POST в сценарии загрузки PHP с https: // на http: // и сохранять данные POST.

Выдает эти ошибки:

  (70007)The timeout specified has expired: proxy: prefetch request body failed to   1.2.3.4:80
  (103)Software caused connection abort: proxy: pass request body failed to 1.2.3.4:80
   proxy: pass request body failed to 1.2.3.4:80

Это мой конфиг:

   <VirtualHost 1.2.3.4:443>

   RewriteEngine On
   RewriteCond %{HTTPS} on
   RewriteRule ^/?files/incoming_files\.php http://%{SERVER_NAME}/files/incoming_files\.php [NC,P]
   RewriteRule ^/?api/v2/incoming_files\.php http://%{SERVER_NAME}/api/v2/incoming_files\.php [NC,P]


   SSLProxyEngine on
   ProxyRequests Off
   ProxyPreserveHost On
   SetEnv proxy-sendchunked       1
   SetEnv proxy-sendcl            0

   ProxyPass /files/incoming_files.php http://mydomain.com/files/incoming_files.php
   ProxyPassReverse /files/incoming_files.php http://mydomain.com/files/incoming_files.php

   ProxyPass /api/v2/incoming_files.php http://mydomain.com/api/v2/incoming_files.php
   ProxyPassReverse /api/v2/incoming_files.php http://mydomain.com/api/v2/incoming_files.php

Пробовали: Установить перезапись без ProxyPass. Установите ProxyPass без перезаписи. Установить с / без SetEnv proxy-sendchunked 1 / proxysend-cl 0

Есть идеи, какое лучшее решение, и что я делаю не так?


person olealgo    schedule 21.06.2014    source источник


Ответы (1)


Я вижу те же сообщения об ошибках в моем журнале доступа к apache:

[error] (103)Software caused connection abort: proxy: pass request body failed to X.X.X.X:Y (hostname)
[error] proxy: pass request body failed to X.X.X.X:Y (hostname) from Z.Z.Z.Z ()

с той лишь разницей, что я использую бэкэнд tcServer (Tomcat).

Что я могу вам сказать, так это то, что я также вижу код ответа 502, связанный с запросом на загрузку.

"POST /<path_to_target>/upload.do?_t=1407181458532 HTTP/1.1" 502 305

Я думаю, вы могли понять, что ваш ProxyPass перенаправляет HTTPS на HTTP, и это то, что мне нужно проверить.

Я бы посоветовал вам изменить значение ProxyRequests на On.

ProxyRequests On
person Frank Moore    schedule 04.08.2014