2016-09-19 115 views
1

嗯,我无所不在,但是如果有人知道我在哪里可以找到解决方案,对于再次询问问题感到抱歉。Apache与Tomcat的反向代理

我们正在实施此解决方案: HTTP客户端 - >的Apache 2.4反向代理服务器 - > HTTP服务器=>作品OK HTTPS客户端 - >的Apache 2.4反向代理服务器 - > HTTPS服务器=>作品OK

但是,当HTTPS服务器使用“302”重定向头进行回复时,头中的服务器名称不会转换为客户端已知的服务器名称。因此,由于DNS错误,客户端无法连接。

我们无法在DNS中添加后端服务器名称,因此我们需要该解决方案才能工作。

重要提示:HTTP中的工作方式相同。这意味着当服务器回复是HTTP中的“302”重定向头时,没有问题。即使重定向的目标是HTTPS链接,它也可以工作。所以,不工作的是从HTTPS重定向到HTTPS。 后端web服务器是Tomcat。

的问题是:在HTTPS头,重定向URL是“https://[backendname]/something.html”但我们希望它是“https://[servername]/something.html

我们检查,我们在日志文件中没有错误(错误级别设置为“调试“)。

这里是我们的虚拟站点配置:

<VirtualHost [reverse proxy IP]:443> 
    SSLEngine on 
    SSLProxyEngine on 
    SSLCertificateFile D:/Apache24/ssl/certs/servername.cer 
    SSLCertificateKeyFile D:/Apache24/ssl/private/servername.key 

    ServerName [servername] 
    ProxyPass/https://[backendname]:443/ 
     ProxyPassReverseCookiePath/https://[backendname]:443/ 
     ProxyPassReverse/https://[backendname]:443/ 

    SetOutputFilter proxy-html 
    ProxyHTMLEnable On 
    ProxyHTMLURLMap https://[backendname] https://[servername] 

    ErrorLog D:/Apache24/logs/custom/[servername]_error.log 
    CustomLog D:/Apache24/logs/custom/[servername]_access.log combined 

    SetEnv nokeepalive ssl-unclean-shutdown 
</VirtualHost> 

问题相关的Apache激活模块:

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_connect_module modules/mod_proxy_connect.so 
LoadModule proxy_html_module modules/mod_proxy_html.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule xml2enc_module modules/mod_xml2enc.so 

因此,任何帮助,使这项工作将不胜感激。

谢谢。

+0

我最近发现我的302个响应被缓存,因为Apache正在插入我不想要的缓存控制指令。我用“ExpiresActive Off”解决了我的问题。 –

+0

我也有类似的问题,通过添加或删除我的重定向URL和/或表单操作属性中的前导斜杠解决。 –

+0

谢谢。我试过了,它工作。 – typepub

回答

0

这里是工作的解决方案,由迈克尔·阿克曼

感谢您的帮助