2012-11-12 82 views
1

我试图在Ubuntu上使用Apache启动本地主机应用程序,并将其代理到Tomcat,以便我可以在我的应用程序中使用.jsp页面。看来这是可能的,我认为我很接近,但我似乎无法完全理解。任何帮助是极大的赞赏!我从来没有使用Apache或Tomcat,所以如果任何一个看起来很愚蠢,请不要恨我。通过在URL中键入本地主机/ hello.html的使用AJP将Apache连接到Tomcat

<VirtualHost *:80> 
ServerName localhost 
ServerAlias test.com 

DocumentRoot /var/www/test.com/helloworld 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
</Directory> 
<Directory /var/www/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride None 
    Order allow,deny 
    allow from all 
</Directory> 

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
<Directory "/usr/lib/cgi-bin"> 
    AllowOverride None 
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
    Order allow,deny 
    Allow from all 
</Directory> 

ErrorLog ${APACHE_LOG_DIR}/error.log 

# Possible values include: debug, info, notice, warn, error, crit, 
# alert, emerg. 
LogLevel warn 

CustomLog ${APACHE_LOG_DIR}/access.log combined 

Alias /doc/ "/usr/share/doc/" 
<Directory "/usr/share/doc/"> 
    Options Indexes MultiViews FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
    Allow from 127.0.0.0/255.0.0.0 ::1/128 
</Directory> 

</VirtualHost> 

这让我成功地浏览到我的网页hello.html的:

我有阿帕奇托管在本地主机站点使用此代码的主机。我已阅读,从这个角度,我需要插入一些代码,如:

ProxyRequests Off 
ProxyPreserveHost On 

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

ProxyPass /(appname) ajp://localhost:8009/(appname) 
ProxyPassReverse /(appname) ajp://localhost:8009/(appname) 

然后到tomcat应该得到的请求。在这种情况下,appname会是什么?我的网页位于/var/www/test.com/helloworld/hello.html,所以我认为它会是“helloworld”,但这不起作用。当我将appname留空时,我看到Tomcat“恭喜,您已经成功安装了Tomcat”。当我导航到本地主机,但无法找到我的页面。

请帮忙。这正在慢慢变成一场噩梦。谢谢!

+0

我知道这并没有回答这个问题,但你知道JBoss是一个全功能的免费应用服务器,它已经嵌入了Tomcat。不知道是否由于某种原因需要使用Apache,但JBoss对您来说可能是更好的解决方案。 – Jim

+0

听起来很棒。不幸的是,我认为我仅限于Apache。我正在为已经在他们的服务器上拥有Apache主机的人建立一个Web服务,我想他们希望我能够适应它们。 :(谢谢大家!如果我有选择,我一定会使用它。 –

回答

0

我想通了。这是超级愚蠢的,但我试图从/ var/www加载应用程序,而不是将它放在tomcat目录中。/facepalm

我在原始问题中发布的代理代码是虚拟主机中唯一需要的代码。感谢大家。

相关问题