2014-09-01 91 views
0

所以我嘗試了幾個教程,但是我錯過了一些東西,希望有人能幫助我。配置tomcat7和apache2

我有一個的Ubuntu 12.04服務器tomcat7的Apache2運行,我試圖達到通過的Apache2 Tomcat上運行的應用程序(JSF 2.2)。

運行在tomcat上的應用程序工作正常,如果我像這樣訪問它:example.com:8080/demo

我試圖通過的Apache2訪問它在以下網址:demo.example.com

到目前爲止,主要的頁面加載,但在應用程序中的導航是沒有的。

如果應用程序發送我example.com:8080/demo/page2.xhtml的代替demo.example.com/page2.xhtml我莫名其妙地重定向到 demo.example。 com/demo/page2.xhtml並得到一個HTTP狀態404.

而現在,百萬美元的問題:我做錯了什麼?

這裏是我的的httpd.conf文件

<VirtualHost demo.mydomain.com:80> 
    ProxyRequests Off 
    ProxyPreserveHost On 

    ProxyPass/ajp://localhost:8009/demo/ 
    ProxyPassReverse/ajp://localhost:8009/demo/ 

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

server.xml中從tomcat7添加以下條目:

<Connector port="8009" URIEncoding="UTF-8" protocol="AJP/1.3" redirectPort="8080"/> 

中的libapache2-MOD- jk「workers.properties」我有以下條目:

workers.tomcat_home=/var/lib/tomcat7 
workers.java_home=/usr/lib/jvm/java-8-oracle 
ps=/ 
worker.list=ajp13_worker 
worker.ajp13_worker.port=8009 
worker.ajp13_worker.host=localhost 
worker.ajp13_worker.type=ajp13 
worker.ajp13_worker.lbfactor=1 
worker.loadbalancer.type=lb 
worker.loadbalancer.balance_workers=ajp13_worker 

回答

0

請更新ProxyPass設置如下。

ProxyPass /demo/ ajp://localhost:8009/demo/ 
ProxyPassReverse /demo/ ajp://localhost:8009/demo/ 

或者

ProxyPass  / ajp://localhost:8009/ 
ProxyPassReverse/ ajp://localhost:8009/ 
+0

第一個不工作 - >我重定向到的Parallels Plesk Panel主頁和第二個重定向的我到Tomcat的默認主頁,而不是在「/ demo」下運行的webapp。 – TestTesterTest 2014-09-02 06:10:33

0

替代你可以使用HTTP連接(默認爲8080)。這些必須在server.xml中激活。

ProxyPass /demo/ http://localhost:8080/demo/ 
ProxyPassReverse /demo/ http://localhost:8080/demo/ 

如果URI/demo下/發送,則按照配置進行。對於這一點,但是,這些鏈接必須是相對於演示,否則會出現問題

ProxyPass/http://localhost:8080/demo/ 
ProxyPassReverse/http://localhost:8080/demo/