【发布时间】:2012-11-13 01:27:05
【问题描述】:
我在配置 Apache 和 Tomcat 时遇到问题,是这样的场景:
我有一个 Apache Web 服务器,运行正常,我只需输入以下内容即可访问它:
http://localhost
另外,在这台主机上,我有一个运行良好的 Tomcat;我创建了一个迷你网络应用程序,其中的文件位于“prueba”目录中,我可以输入:
http://localhost:8080/prueba
(我知道Apache运行在80端口,Tomcat运行在8080)
我想要做的是通过 Apache 用户可以访问“pruebas”(在 Tomcat 上运行),我的意思是:
http://localhost/prueba
我已经阅读了很多,我认为有两种方法可以做到这一点,我决定启用代理模块(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>
但这并没有正常工作:(
我不得不说我已经尝试了很多改变,就这 2 行,比如:
ProxyPass /prueba ajp://localhost:8009/prueba
ProxyPassReverse /prueba ajp://localhost:8009/prueba
或
ProxyPass / ajp://localhost:8009/prueba
ProxyPassReverse / ajp://localhost:8009/prueba
(每次编辑文件时,我都会重新启动 apache)
但是当我访问 [http://localhost/prueba/] 时,我有: 服务暂时不可用
有人知道为什么吗? 在此先感谢各位。
Pd:我正在使用 apache 2.2.17 和 tomcat6。
【问题讨论】:
-
对于任何偶然发现此问题的人(正如我刚刚遇到的那样)--如果您在 Apache 错误日志中看到此内容:...[错误] (13)权限被拒绝:代理:HTTP:尝试连接到 127.0.0.1... 您可以尝试通过运行以下命令来配置 SELinux(当然,如果您使用的是 SELinux): setsebool -P httpd_can_network_connect 1 参考:wiki.apache.org/httpd/13PermissionDenied
标签: proxy apache2 tomcat6 reverse-proxy ajp