我通過ajp協議連接到兩個tomcat應用程序。這兩個文件都在ROOT.war的獨立tomcat虛擬主機上運行。 在服務器上,我已經配置了/ etc/hosts文件使用ajp協議連接到備用備用主機別名
127.0.0.1 localhost tcvh1 tcvh2
的Apache httpd.conf:
Listen 80
NameVirtualHost *:80
<VirtualHost *:80>
#ProxyPreserveHost On
ServerName app1.example.com
ProxyPass/ajp://tcvh1:8082/
ProxyPassReverse/ajp://tcvh1:8082/
</VirtualHost>
<VirtualHost *:80>
#ProxyPreserveHost On
ServerName app2.example.com
ProxyPass/ajp://tcvh2:8082/
ProxyPassReverse/ajp://tcvh2:8082/
</VirtualHost>
的Tomcat:
我有應用程序部署爲: APP1 - $ CATALINA_HOME/tcvh1/ROOT.war APP 2 - $ CATALINA_HOME/tcvh2/ROOT.war
現在, 如果我改變了對Tomcat的端口8080上運行,並改變了代理通過連接到http://tcvh1:8080,然後它工作。但如果我用AJP配置,它不起作用。
爲什麼我的主機別名不適用於AJP?有沒有辦法讓它工作?
你正在運行兩個tomcat實例嗎?因爲如果是這種情況,它看起來像你試圖爲他們使用端口8082,這是行不通的(只有一個應用程序可以監聽給定的端口)。你需要有一個tomcat實例在不同的端口上偵聽,並根據需要更新你的配置。 – larsks
@larsks OP沒有運行兩個Tomcat實例。 OP正在使用虛擬主機。請參閱http://tomcat.apache.org/tomcat-7.0-doc/virtual-hosting-howto.html –
我不完全清楚「這兩個都在單獨的tomcat虛擬主機中運行」是否他的意思是兩個實例在Apache中使用虛擬託管)或者在Tomcat中使用虛擬託管的單個實例。聽起來就像你在上面。 – larsks