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

M / Monit за нарушенными перенаправлениями прокси-сервера Apache SSL VHost

У меня возникли проблемы с тем, чтобы M / Monit работал через прокси. Я пытаюсь проксировать HTTPS-соединения с https: //monit.mydomain.com на http: //monit.realserver.com:8082.

С конфигурацией ниже, если я перейду на https: //monit.mydomain.com/index.csp или любой другой допустимый путь, все будет работать нормально. Однако, если я попытаюсь зайти только на https: / /monit.mydomain.com или https: //monit.mydomain.com/, он перенаправится на http: //monit.mydomain.com:8082/index.csp

[root@uk1001 conf.d]# curl -k -v --fail https://monit.mydomain.com
* About to connect() to monit.mydomain.com port 443 (#0)
*   Trying 10.0.35.80... connected
* Connected to monit.mydomain.com (10.0.35.80) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* warning: ignoring value of ssl.verifyhost
* skipping SSL peer certificate verification
* SSL connection using TLS_DHE_RSA_WITH_AES_128_CBC_SHA
* Server certificate:
... omitted cert details ...
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: monit.mydomain.com
> Accept: */*
>
< HTTP/1.1 302 Moved Temporarily
< Date: Thu, 26 Jan 2017 11:20:01 GMT
< Server: mmonit/3.5
< Content-Type: text/plain; charset=UTF-8
< Location: http://monit.mydomain.com:8082/index.csp
< Connection: close
< Transfer-Encoding: chunked
<

Вот мой конфиг vhost:

<VirtualHost *:443 >
  ServerName monit.mydomain.com
  SSLEngine on
  SSLProxyEngine on

  ProxyRequests Off
  ProxyPreserveHost On

  RequestHeader set X-FORWARDED-PROTO "https"

  ProxyPass / http://monit.realserver.com:8082/ connectiontimeout=5 timeout=300
  ProxyPassReverse / http://monit.realserver.com:8082/

</VirtualHost>

Я знаю, что это старый вопрос, но поскольку я наткнулся на ту же проблему: где-то внутри конфигурации Monit Location Заголовок установлен на: http://monit.mydomain.com:8082/index.csp

Но твой ProxyPassReverse директива: ProxyPassReverse / http://monit.realserver.com:8082/ прислушивается к Location http://monit.realserver.com:8082/ - поэтому заголовок местоположения не изменяется. Измените директиву на: ProxyPassReverse http://monit.mydomain.com:8082/ и он должен работать.

На странице 83 документации рассказывается, как это сделать, посмотрите на: https://mmonit.com/documentation/mmonit_manual.pdf

Вы забыли сообщить M / Monit, что он будет проксифицирован и должен рекламироваться с другими данными. Обратите внимание на атрибуты Коннектор.

proxyScheme="https" proxyName="monit.mydomain.com" proxyPort="443"