需要帮助使用 mod_proxy_ajp 从 Apache 重定向到 Tomcat

需要帮助使用 mod_proxy_ajp 从 Apache 重定向到 Tomcat

我使用 mod_proxy_ajp 从 Apache 重定向到 Tomcat。Apache 在端口 80 上运行,tomcat ajp 连接器设置在端口 8081 上。这是我的虚拟主机配置:

<virtualHost *:80>
   ServerName www.example.com
   ProxyRequests Off
   ProxyPreserveHost On

   <Proxy *>
      AddDefaultCharset Off
      Order deny,allow
          Allow from all
   </Proxy>

   ProxyPass / ajp://localhost:8081/example/
   ProxyPassReverse / ajp://localhost:8081/example/

   <Location />
    Order allow,deny
    Allow from all
   </Location>
</VirtualHost>

问题是当我输入 url www.example.com(示例位于 tomcat webapp 目录中)时,只有示例应用程序的标题加载,浏览器停止加载,什么也没发生。有什么想法吗?谢谢,抱歉我的英语不好

答案1

在默认配置中,8080端口提供HTTP内容,而AJP使用8009端口提供。你可以在tomcat的server.xml文件中确认这一点,例如:

<Executor name="tomcatThreadPool" 
          namePrefix="catalina-exec-"
          maxThreads="150" 
          minSpareThreads="4"/>

<Connector executor="tomcatThreadPool"
           port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

<Connector executor="tomcatThreadPool"
           port="8009" protocol="AJP/1.3"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443" />

mod_proxy_ajp不需要ProxyPassReverse指令,因此您只需替换:

ProxyPass / ajp://localhost:8081/example/
ProxyPassReverse / ajp://localhost:8081/example/

和:

ProxyPassMatch ^/(example)(.*) ajp://localhost:8009/$1$2 ttl=120 ping=1

在 Apache 配置中。为 AJP 使用适当的端口。

相关内容