首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Httpd返回503服务在Tomcat8的mod_proxy中不可用

Httpd返回503服务在Tomcat8的mod_proxy中不可用
EN

Stack Overflow用户
提问于 2014-09-03 20:35:01
回答 4查看 143.8K关注 0票数 87

我正在尝试集成Tomcat和Apache。我的目标是将所有使用http://localhost/myapp的请求重定向到http://localhost:8080

我遵循了这个指南:http://tomcat.apache.org/tomcat-8.0-doc/proxy-howto.html

我的httpd.conf看起来像这样:

代码语言:javascript
复制
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如下所示:

代码语言:javascript
复制
<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错误日志:

代码语言:javascript
复制
[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/

EN

回答 4

Stack Overflow用户

发布于 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试图做的事情。

如果这是问题所在,可以通过运行以下命令来解决:

代码语言:javascript
复制
 /usr/sbin/setsebool -P httpd_can_network_connect 1

有关更明确的信息来源,请参阅https://wiki.apache.org/httpd/13PermissionDenied

票数 141
EN

Stack Overflow用户

发布于 2019-09-23 14:16:08

立即解决问题,这与内部安全有关

我们为企业linux RedHat工作的SnippetBucket.com发现httpd服务器不允许代理运行,既不允许本地主机,也不允许127.0.0.1,也不允许任何其他外部域。

在服务器日志中找到的As调查

代码语言:javascript
复制
[error] (13)Permission denied: proxy: AJP: attempt to connect to
   10.x.x.x:8069 (virtualhost.virtualdomain.com) failed

审计日志发现类似的端口问题

代码语言:javascript
复制
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的内部默认安全,这个原因,现在修复(临时)

代码语言:javascript
复制
 /usr/sbin/setsebool httpd_can_network_connect 1

解决永久性问题

代码语言:javascript
复制
/usr/sbin/setsebool -P httpd_can_network_connect 1
票数 7
EN

Stack Overflow用户

发布于 2017-01-17 08:59:01

通过在apache中编辑我的*.conf文件,这对我很有效:

代码语言:javascript
复制
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
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25644487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档