我正在尝试集成Tomcat和Apache。我的目标是将所有使用http://localhost/myapp
的请求重定向到http://localhost:8080
我遵循了这个指南:http://tomcat.apache.org/tomcat-8.0-doc/proxy-howto.html
我的httpd.conf
看起来像这样:
Include conf.modules.d/*.conf
LoadModule proxy_module modules/mod_proxy.so
ProxyPass /myapp http://localhost:8080 retry=0 timeout=5
ProxyPassReverse /myapp http://localhost:8080
我在apache-tomcat中的server.xml如下所示:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" proxyPort="80" />
现在,当我尝试url http://localhost/myapp
时,它给出了503 Service Unavailable
错误。
Tomcat和Apache都已启动并运行。URL http://localhost:8080
工作正常。
文件权限会有问题吗?
对于tomcat
,用户和组为root/root
;对于httpd
,用户和组为apache/apache
是我错过了什么,还是我做错了?
Httpd版本为2.4.6,Tomcat版本为8.0
httpd错误日志:
[proxy:error] [pid 19905] (13)Permission denied: AH00957: HTTP: attempt to connect to 127.0.0.1:8080 (localhost) failed
[proxy:error] [pid 19905] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 0s
[proxy_http:error] [pid 19905] [client ::1:51615] AH01114: HTTP: failed to make connection to backend: localhost
已解决!
答案就在这里:http://sysadminsjourney.com/content/2010/02/01/apache-modproxy-error-13permission-denied-error-rhel/
发布于 2015-01-29 04:08:26
(由操作员在问题编辑中回答。已转换为社区维基答案。参见Question with no answers, but issue solved in the comments (or extended in chat) )
操作员写道:
答案在这里:http://sysadminsjourney.com/content/2010/02/01/apache-modproxy-error-13permission-denied-error-rhel/
这是一个博客的链接,它解释了:
默认情况下,RHEL/CentOS上的
SELinux会导致httpd进程无法启动出站连接,而这正是mod_proxy试图做的事情。
如果这是问题所在,可以通过运行以下命令来解决:
/usr/sbin/setsebool -P httpd_can_network_connect 1
有关更明确的信息来源,请参阅https://wiki.apache.org/httpd/13PermissionDenied
发布于 2019-09-23 14:16:08
立即解决问题,这与内部安全有关
我们为企业linux RedHat工作的SnippetBucket.com发现httpd服务器不允许代理运行,既不允许本地主机,也不允许127.0.0.1,也不允许任何其他外部域。
在服务器日志中找到的As调查
[error] (13)Permission denied: proxy: AJP: attempt to connect to
10.x.x.x:8069 (virtualhost.virtualdomain.com) failed
审计日志发现类似的端口问题
type=AVC msg=audit(1265039669.305:14): avc: denied { name_connect } for pid=4343 comm="httpd" dest=8069
scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket
由于linux的内部默认安全,这个原因,现在修复(临时)
/usr/sbin/setsebool httpd_can_network_connect 1
解决永久性问题
/usr/sbin/setsebool -P httpd_can_network_connect 1
发布于 2017-01-17 08:59:01
通过在apache中编辑我的*.conf文件,这对我很有效:
ProxyRequests Off
ProxyPreserveHost On
RewriteEngine On
<Proxy http://localhost:8123>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /node http://localhost:8123
ProxyPassReverse /node http://localhost:8123
https://stackoverflow.com/questions/25644487
复制相似问题