使用AJP将Apache连接到Tomcat



我正试图用Apache在Ubuntu上启动一个localhost应用程序,并将其代理到Tomcat,以便在我的应用程序中使用.jsp页面。这似乎是可能的,我认为我已经很接近了,但我似乎做得不太好。非常感谢您的帮助!我以前从未使用过apache或tomcat,所以如果这些看起来很愚蠢,请不要恨我。

我让Apache在localhost上托管一个站点,主机代码如下:

<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留空时,当我导航到localhost但找不到我的页面时,我会看到Tomcat"祝贺你,你已经成功安装了Tomcat。"。

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

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

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

最新更新