Linux

在使用 mod_proxy_ajp 從 Apache 重定向到 Tomcat 時需要幫助

  • July 13, 2013

我使用 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 目錄中)時,僅載入範例應用程序的標題並且瀏覽器停止載入並且沒有任何反應。任何的想法?感謝並為我糟糕的英語感到抱歉

在預設配置中,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 使用適當的埠。

引用自:https://serverfault.com/questions/523129