Назад | Перейти на главную страницу

Apache ProxyPass => IIS 8

TL; DR: Веб-задачи, занимающие более 5 минут, из-за ошибок Apache ReverseProxy. Задачи / отчеты меньшей продолжительности успешно выполняются. Прямой доступ к отчетам завершается успешно (http: //internalserver/foobar.aspx вместо того http://public.mycompany.com/foobar.aspx). Где мне искать и каких тайм-аутов мне не хватает?

У меня есть экземпляр Apache, который переключается на HTTPS, а затем ProxyPassing запрос по его веселому пути ... в экземпляр Windows Server 2012 R2 IIS 8.

Browser <==> 
Apache 2.2.15 <==> 
IIS 8 (Windows 2012 R2, IIS 8.5.9600.16384) <==> 
Web App (<==> database)

Все идет просто нахально - до тех пор, пока не будет запущен «продолжительный» отчет. При запуске непосредственно на сервере Windows отчет занимает ~ 6 минут. При запуске из браузера более короткие отчеты создаются успешно, но в конечном итоге это не удается.

Ошибка веб-страницы:

502 Proxy Error

Proxy Error

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /app/LongRunningReport.aspx.

Reason: Error reading from remote server

ssl_error:

==> ssl_error_log <==
[Wed Nov 04 14:59:48 2015] [error] [client 192.168.1.225] (104)Connection reset by peer: proxy: error reading status line from remote server 192.168.1.179
[Wed Nov 04 14:59:48 2015] [error] [client 192.168.1.225] proxy: Error reading from remote server returned by /app/LongRunningReport.aspx

ssl.conf:

LoadModule ssl_module modules/mod_ssl.so
Listen 192.168.1.101:443
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  1200
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<VirtualHost 192.168.1.101:443>
  ErrorLog logs/ssl_error_log
  TransferLog logs/ssl_access_log
  LogLevel warn
  SSLEngine on
  SSLProtocol all -SSLv2 -SSLv3
  SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
  SSLCertificateFile conf.d/ssl.crt/test.crt
  SSLCertificateKeyFile conf.d/ssl.key/test.key
  SSLCertificateChainFile conf.d/ssl.crt/2015.crt
  SSLCACertificateFile conf.d/ssl.crt/Company_Root_CA.cer
  <Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
  </Files>
  <Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
  </Directory>
  CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

  ServerName test.company.com
  RedirectMatch ^/$ https://test.company.com/app/login.aspx

  SSLProxyEngine on
  ProxyPass        / https://192.168.1.179/
  ProxyPassReverse / https://192.168.1.179/

  SetEnv force-proxy-request-1.0 1
  SetEnv proxy-nokeepalive 1
  SetEnv proxy-initial-not-pooled 1

  TimeOut 1200
  ProxyTimeout 1200
</VirtualHost>
SSLInsecureRenegotiation off
SSLHonorCipherOrder on

IIS Settings:
Advanced Settings > Limits > Connection Time-out (seconds): 1200
Session State > Cookie Settings > Timeout (in minutes): 20

Мы попытались увеличить все возможные настройки тайм-аута до 1200 (20 минут) - внутри Apache и IIS.

Что мне не хватает? Что может вызывать сообщение об ошибке прокси между Apache и IIS?