使用Tomcat进行Apache https反向代理

时间:2016-09-19 11:14:19

标签: apache tomcat redirect https proxy

好吧,我随处可见,但如果有人知道我在哪里可以找到解决方案,很抱歉再问一遍这个问题。

我们正在寻求实施此解决方案: HTTP客户端 - > Apache 2.4反向代理 - > HTTP Server =>工作正常 HTTPS客户端 - > Apache 2.4反向代理 - > HTTPS服务器=>工作正常

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

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

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

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

我们检查过日志文件中没有错误(错误级别设置为“debug”)。

以下是我们的虚拟站点配置:

<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

因此,非常感谢任何帮助完成这项工作。

感谢。

1 个答案:

答案 0 :(得分:1)

这是Michael Akerman建议的工作解决方案

感谢您的帮助