使用AJP将Apache连接到Tomcat

时间:2012-11-12 20:55:30

标签: apache apache2 tomcat6 tomcat7 ajp

我正在尝试使用Apache在Ubuntu上启动localhost应用程序并将其代理到Tomcat,以便我可以在我的应用程序中使用.jsp页面。这似乎是可能的,我认为我非常接近,但我似乎无法做到这一点。任何帮助是极大的赞赏!我之前从未使用过apache或tomcat,所以如果这些看起来很愚蠢,请不要讨厌我。

我已经在本地主机上使用以下代码为Apache托管了一个站点:

<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>

这允许我通过在URL中键入localhost / hello.html成功导航到我的页面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”。当我导航到localhost但找不到我的页面时。

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

1 个答案:

答案 0 :(得分:0)

我明白了。这是非常愚蠢的,但我试图从/ var / www加载应用程序,而不是将其存放在tomcat目录中。 /捂脸

我在原始问题中发布的代理代码是virtualhost中唯一需要的代码。谢谢大家。