2012-04-30 49 views
1

映射Apache和Tomcat之間的URL我在Ubuntu Server 10.04.3 LTS中使用Apache/2.2.14Apache Tomcat/6.0.29使用mod_jk

這是我jk.conf

JkWorkersFile /etc/libapache2-mod-jk/workers.properties 
JkMount  /portal/* worker1 
JkLogLevel debug 
JkMountCopy All 

這是我workers.properties

ps=/ 

# Define 1 real worker named worker1 
worker.list=worker1 

# Set properties for worker named worker1 to use ajp13 protocol, 
# and run on port 8009 
worker.worker1.type=ajp13 
worker.worker1.host=localhost 
worker.worker1.port=8009 
worker.worker1.lbfactor=1 
worker.worker1.socket_keepalive=1 
worker.worker1.socket_timeout=300 

的問題是,每當我嘗試通過Apache訪問Tomcat的有:http://my.host.com/portal下,Tomcat與回覆:

13:39:30,683 INFO [PortalImpl:3829] Current URL /portal/ generates exception: null 

問題消失如果我使用不同的m ountpoint爲職工:

JkMount  /portal/* worker1 

但是,這迫使我在這裏訪問我的Tomcat實例:http://my.host.com,我不想要的。如何使用mod-jk重寫URL?

回答

2

你可以跳過所有的配置,如果你只是使用的mod_proxy而不是mod_ajp ...

ProxyPass /foo http://localhost:8080/bar 
ProxyPassReverse /foo http://localhost:8080/bar 

這將代理/富在端口8080上運行

+0

本地服務器的URL /酒吧這工作,如果我做了'ProxyPass/http:// localhost:8080'和'ProxyPassReverse/http:// localhost:8080'。我可以訪問http://my.host.com網站。但是,如果我嘗試:ProxyPass/portal http:// localhost:8080和ProxyPassReverse/portal http:// localhost:8080並訪問http://my.host.com/portal,則只有部分內容是所示。沒有找到零件,因爲它們缺少「portal」前綴。我想說的問題是,tomcat不會將前綴添加到動態內容。但實際上這應該是apache的責任,使它對tomcat完全透明。任何提示? – dangonfast