2014-09-01 75 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/