2016-09-19 113 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

這裏是工作的解決方案,由邁克爾·阿克曼

感謝您的幫助