Apache 代理不适用于 response.sendredirect

Apache 代理不适用于 response.sendredirect

我对 apache 还很陌生...需要帮助。公开可访问的网址:httpx://testsite.com。此站点是 BigIp...其成员为 localserver.com:21211....因此,对 testsite.com 的任何请求都将转到 localserver.com:21211

我正在使用 apache web 服务器(https),并且有一个内部 tomcat 应用程序(运行 https),它们都运行在同一个主机上。

因此,流程是 ==> httpx://testsite.com ==> apache(https)==> Tomcat 内部应用程序(https)

Tomcat 应用程序使用 2 个 servlet(第一个是 Servlet1,然后是 Servlet2)并在剩余的会话中停留在那里

从 servlet1 到 servlet2 它执行 response.sendRedirect(jsp); 其中 jsp = ../../wsc/Servlet2?cmd=currentEnv&wscUser=*****&wscEnv=D2&clientId=****&wsc_SESSION_ID=-683682815967505906_1452611560873

所以..使用目前的配置..我无法转到 servlet2..它总是在 Servlet1 中失败并出现 404 错误,日志中给出了此路径 ==> httpx://testsite.com/wsc/Servlet1?clientId=****&wscEnv=D2&ApplCode=wsc

我可以看到 wsc_SESSION_ID 在应用程序日志中创建...但它没有被转发到 Servlet2

流程如下:

  1. 任何到达 httpx://testsite.com 的请求都应重定向到 httpx://localserver.fmr.com:21211/wsc/Servlet1

  2. 重定向后,用户将通过 SiteMinder 进行验证,以实现单点登录。(这很有效)

  3. 然后所有后续请求都应转发到 httpx://localserver.com:21201/wsc/Servlet1 (稍后重定向到 Servlet2)

应用程序上下文是 httpx://localserver.com:21201/wsc/Servlet1 和 httpx://localserver.com:21201/wsc/Servlet2

有人可以帮我实现这个吗?您可能会看到很多不必要的命令...但那是因为我尝试了不同的东西......

笔记 :我在问题描述中使用了 https 作为 httpx,因为问题不允许我输入太多 URL。很抱歉

当前配置:

<VirtualHost localhostname.com:21211>
    DocumentRoot "/apps/ers/servers/dev_ers/htdocs"
    ServerName localserver.com:21211
    ServerAdmin [email protected]
    LogLevel debug
    ErrorLog logs/https_error.log
    TransferLog logs/https_access.log

    SSLEngine on

    SSLProtocol all -SSLv2 -SSLv3
    SSLProxyEngine On
    SSLProxyCheckPeerCN off
    SSLProxyProtocol +TLSv1
    SSLProxyVerify none
    SSLProxyCipherSuite ALL:!EDH:!DHE:!ECDHE:!ECDH:!ADH:RC4+RSA:!EDH:+HIGH:+MEDIUM:+LOW:!SSLv2:!3DES:!DES:+EXP

    ProxyPass / https://localhostname.com:21201/
    ProxyPassReverse / https://localhostname.com:21201/
    ProxyPreserveHost Off

    RewriteEngine On
    RewriteRule ^/$  https://localhostname.com:21211/wsc/Servlet1  [R]


    SSLCertificateFile    ssl/dev_ers.crt
    SSLCertificateKeyFile ssl/dev_ers.key
    # SSLCACertificateFile /apps/ers/tools/ssl/ca-bundle.crt

    SetEnvIf User-Agent ".*MSIE.*" ssl-unclean-shutdown
    CustomLog logs/https_cipher.log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

相关内容