gpt4 book ai didi

apache - AJP 不适用于服务器别名

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

我有一个应用程序,它使用 mod_proxy_ajp 配置了 apache 和 tomcat我们在 httpd.conf 中配置如下:

# This is to redirect any request which is coming with hostname to   Login.jsp
RewriteRule ^/$ /jsp/Login.jsp [R]

#include httpd-proxy.conf
<IfModule mod_proxy_ajp.c>
Include conf/extra/httpd-proxy.conf
</IfModule>

进入httpd-proxy.conf 以下是代理配置:

<Proxy *>
AddDefaultCharset Off
Order deny,allow
Allow from all
</Proxy>
ProxyPass /jsp/ ajp://localhost:8009/jsp/
ProxyPassReverse /jsp/ ajp://localhost:8009/jsp/

在 tomcat 的 server.xml 文件中,我们配置了 AJP 连接器,如下所示:

 <Connector port="8009" protocol="org.apache.coyote.ajp.AjpProtocol" redirectPort="8443" address="localhost" 
enableLookups="true" maxThreads="500" connectionTimeout="120000" URIEncoding="UTF-8" />

现在,当我使用主机名和 IP 地址访问我的机器时,请求工作正常并显示 Login.jsp。但是,如果我在服务器和客户端(从运行浏览器的地方)的主机文件中添加一个条目,并使用下面的原始服务器名称的别名,那么它将不起作用。

    some_ip_address original_host_name  alias1 #This is alias

当我以 http://alias1 的形式发出请求时,请求被重定向到 Login.jsp但页面没有出现。在浏览器中,我可以看到 url 为 http://alias1/jsp/Login.jsp但页面没有出现。在 apache ajp 日志中,我可以看到响应代码是 200。所以不确定问题到底出在哪里谁能帮帮我

最佳答案

我假设您在尝试 ajp 之前已经使用了普通的 mod_proxy,否则您应该尝试一下。

这是添加虚拟主机的示例代码,虚拟主机将为相同域和端口的 Apache 页面提供服务,并将重定向到特定别名的 Tomcat 实例

<VirtualHost *:80>

ServerName localhost
DocumentRoot "d:/apache_test/htdocs/webapp"
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /tomcatapp http://localhost:8080/tomcatapp
ProxyPassReverse /tomcatapp http://localhost:8080/tomcatapp

</VirtualHost>

使用这个,顶部的实际 URL 不会更改为 Tomcat 端口的那个,但您的请求将被转发。如果需要,还可以在 web.xml 中为特定的/path 添加 URL 映射以进一步隔离请求。

关于apache - AJP 不适用于服务器别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33448243/

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