【问题标题】:Problem with HttpServletRequest & ApacheHttpServletRequest 和 Apache 的问题
【发布时间】:2010-09-21 15:21:38
【问题描述】:

当我试图在 myapp.com 上的某个页面上获取请求的 url 我得到类似的东西: http://127.0.0.1:8084/myapp/mypage

预计会是: http://myapp.com/mypage

我认为这是因为 Apache 充当了 tomcat 和用户请求/响应之间的中介

任何想法家伙为什么会发生这种行为,以及如何解决它? 谢谢

【问题讨论】:

    标签: apache tomcat servlets


    【解决方案1】:

    您如何将 Apache 连接到 Java 应用程序服务器?

    如果您使用的是普通反向代理 (mod_proxy),那么您得到的就是预期的结果。由于反向代理的性质,您将无法更改它。

    另一方面,如果您使用 AJP(使用 mod_ajp 或 mod_jk),您应该会收到 http://myapp.com/mypage

    我的建议是,如果您使用的是普通反向代理,请更改为 AJP。

    【讨论】:

    • 我使用了 ajp,它正确地获取了 url,但问题是它做出了错误的重定向,例如:如果你想访问页面 mypage 它转到 myapp.com/myapp/mypage 但它应该转到 @ 987654323@.
    • 告诉我你是如何进行重定向的(在 httpd.conf 配置中)。
    • AddDefaultCharset Off Order deny,allow Allow from all ProxyPass / ajp://127.0.0.1:8009/myapp/ ProxyPassReverse / ajp://127.0.0.1:8009 /myapp/ ProxyPassReverseCookiePath /myapp/
    • 改成:ProxyPass /myapp/ ajp://127.0.0.1:8009/myapp
    • 如果您根本不希望myapp 出现在您的URLs 中,您可以将TOMCAT 配置为在根/ 路径中提供服务,您的应用程序和重定向也应该可以工作。
    猜你喜欢
    • 2013-02-14
    • 1970-01-01
    • 2016-06-05
    • 2012-09-10
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    相关资源
    最近更新 更多