Nginx SSL с tomcat (moqui) не может стабильно запускать moqui с адресом https
У меня есть nginx с ssl перед tomcat 8, а moqui находится внутри tomcat.
Часть веб-приложения в файле conf moqui
<webapp name="webroot" http-port="" https-enabled="false">
<root-screen host=".*" location="component://webroot/screen/webroot.xml"/>
</webapp>
Config nginx для заголовка ssl
proxy_set_header Accept-Encoding "";
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080/;
proxy_http_version 1.1;
Tomcat добавить RemoteIpValve
<Valve className="org.apache.catalina.valves.RemoteIpValve"
internalProxies="192\.168\.1\.14|127\.0\.0\.1"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto"
/>
Это должно работать, чтобы tomcat (moqui) имел адрес https:// для всех ресурсов.
Но я получаю странную картину по адресам. каждые 3 раза обновляя страницу (например, Логин), я получаю один раз прямо по адресу https://, остальные два раза получаем http://. Если я обновляю страницу очень быстро, шаблон меняется один или два раза с http://, затем один раз с https://. Если это страница https://, а ссылки на страницах также являются https, то при переходе по ссылке на странице происходит переход на http.
Я запускаю nginx 1.8.0 и Tomcat 8 с moqui 1.6.2. Я не знаю, сталкивался ли кто-нибудь с этой проблемой также. И я не могу сказать, является ли это проблемой с nginx и tomcat, или что-то с moqui. Очень ценю за любую идею.
1 ответ
Что вы пытаетесь сделать, всегда проходите через HTTPS (за исключением экранов, которые не требуют этого)?
Если это так, то webapp.@ Https-enabled должен иметь значение true, и для достижения наилучших результатов при генерации URL вы должны также указать ему порты http/https (если нет 80/443) и хосты http/https (все в атрибутах элемента webapp).).
Если проблема заключается не в генерации URL-адреса или перенаправлении в HTTPS для незащищенных запросов, когда для экрана требуется https (для этого нужны параметры элемента webapp), возможно, у вас проблемы с конфигурацией nginx или Tomcat.