gpt4 book ai didi

apache - 将内部 servlet 名称映射到不同外部名称的 AJP 代理

转载 作者:行者123 更新时间:2023-11-28 23:54:30 26 4
gpt4 key购买 nike

我想使用 apache2 为 Tomcat 服务器设置 AJP 代理,将内部 servlet URL 映射到外部完全不同的 URL。目前我正在使用以下配置:

Apache2 配置:

<IfModule mod_proxy.c>
ProxyPreserveHost on
ProxyPass /external_name ajp://192.168.1.30:8009/servlet_name
ProxyPassReverse /external_name ajp://192.168.1.30:8009/servlet_name
</IfModule>

请注意,external_nameservlet_name 是不同的。

Tomcat 6 配置:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

然而,这是行不通的。 Apache 似乎将 http 请求转发给 Tomcat。但是,Tomcat 返回的 URL 和重定向仍在使用原始 servlet_name,Apache 不会将它们映射到 external_name

AJP 有可能吗?如果不能,是否可以使用普通的 http 代理来代替?

最佳答案

在 Apache 和 Tomcat 之间映射不同的名称可能非常棘手,并且在很大程度上取决于网络应用程序如何构建其响应的 url。

基本上您的设置是正确的,但如果您的应用程序使用自己的 servlet_name 进行重定向和 url,ProxyPassReverse 将不会映射它们。

如果您需要这种设置,请查看 mod_proxy_html (Apache 第 3 方模块)还将解析和重写内容,而不仅仅是 url 和响应 header 作为 mod_proxy。

关于apache - 将内部 servlet 名称映射到不同外部名称的 AJP 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2236626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com