У меня возникли проблемы с тем, чтобы 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"