Apache和Tomcat:ProxyPass和ProxyPassReverse

kar*_*s9o 15 proxy reverse-proxy apache2 ajp tomcat6

我遇到了配置Apache和Tomcat的麻烦,这就是场景:

我有一个Apache Web Server,运行正常,我可以访问这个只需键入:

http://localhost
Run Code Online (Sandbox Code Playgroud)

此外,在这台主机中,我有一个Tomcat运行并正常工作; 我创建了一个迷你网络应用程序,文件在"prueba"目录中,我可以访问输入:

http://localhost:8080/prueba
Run Code Online (Sandbox Code Playgroud)

(我知道Apache在80端口运行,而Tomcat在8080运行)

我想要做的是通过Apache用户可以访问'pruebas'(在Tomcat上运行),我的意思是:

http://localhost/prueba
Run Code Online (Sandbox Code Playgroud)

我已经知道了很多这个,我认为有两种方法可以做到这一点,我已经决定启用代理模块(proxy和proxy_ajp,带有a2enmod),我也已经知道我必须编辑这个文件: sites-available/default,这是内容:

NameVirtualHost *:80
<VirtualHost *:80>
     ServerName 127.0.0.1
     DocumentRoot /var/www

     ProxyRequests Off
     ProxyPreserveHost On

     ProxyPass /static/ !
     ProxyPass / ajp://localhost:8009/
     ProxyPassReverse / ajp://localhost:8009/

.
.
.
     Alias /static/ "/apache/www/"

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但这没有正常工作:(

我不得不说,我尝试了很多改变,在这两行上,如:

     ProxyPass /prueba ajp://localhost:8009/prueba
     ProxyPassReverse /prueba ajp://localhost:8009/prueba
Run Code Online (Sandbox Code Playgroud)

要么

     ProxyPass / ajp://localhost:8009/prueba
     ProxyPassReverse / ajp://localhost:8009/prueba
Run Code Online (Sandbox Code Playgroud)

(每次我编辑文件,我都重启apache)

但是当我访问[http:// localhost/prueba /]时,我有:服务暂时不可用

有谁知道为什么?先谢谢你们.

Pd:我正在使用apache 2.2.17和tomcat6.

Dil*_*mar 12

你必须把

 ProxyPass / ajp://localhost:8009/
 ProxyPassReverse / ajp://localhost:8009/
Run Code Online (Sandbox Code Playgroud)

在你的apache虚拟主机上

然后你必须在tomcat中取消注释ajp监听器

<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
Run Code Online (Sandbox Code Playgroud)

然后,您必须在server.xml中配置主机和上下文路径

REFF:http://www.ntu.edu.sg/home/ehchua/programming/howto/ApachePlusTomcat_HowTo.html

希望对你有帮助..


Man*_*aux 2

ProxyPassReverse定义 Apache httpd 应该重写 URL 的 URL,这将重定向到代理(隐藏)URL。因此,您应该将ProxyPassReverse线路更改为如下所示:

ProxyPassReverse / http://localhost/prueba/
Run Code Online (Sandbox Code Playgroud)

另请参阅:http ://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html#usage