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