Apache Httpd返回503服务,无法使用Tomcat 8的mod_代理

Apache Httpd返回503服务,无法使用Tomcat 8的mod_代理,apache,tomcat,Apache,Tomcat,我正在尝试将Tomcat与Apache集成。我的目标是用 http://localhost/myapp至http://localhost:8080 我遵循了这个指南: 我的httpd.conf如下所示: Include conf.modules.d/*.conf LoadModule proxy_module modules/mod_proxy.so ProxyPass /myapp http://localhost:8080 retry=0 timeout=5 Proxy

我正在尝试将Tomcat与Apache集成。我的目标是用
http://localhost/myapp
http://localhost:8080

我遵循了这个指南:

我的
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
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" proxyPort="80" />
apache tomcat中的My server.xml如下所示:

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
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" proxyPort="80" />
解决了

答案如下:

(由OP在问题编辑中回答。转换为社区wiki答案。请参阅)

OP写道:

答案如下:

这是一个博客的链接,解释:

默认情况下,RHEL/CentOS上的SELinux会使httpd进程无法启动出站连接,这正是mod_proxy试图做的

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

 /usr/sbin/setsebool -P httpd_can_network_connect 1
有关更明确的信息来源,请参见《这对我很有用》:

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
ProxyRequests关闭
代理主机
重新启动发动机
命令拒绝,允许
通融
代理过程/节点http://localhost:8123  
ProxyPassReverse/节点http://localhost:8123

在CentOS Linux 7.5.1804版上,我们可以通过编辑/etc/selinux/config并更改selinux的设置来实现这一点,如下所示:

SELINUX=disabled
立即解决问题,这与内部安全有关 我们,SnippetBucket.com为enterprise linux RedHat工作,发现httpd服务器不允许运行代理,本地主机或127.0.0.1,也不允许任何其他外部域

正如在服务器日志中找到的一样 审核日志发现类似的端口问题 由于linux的内部默认安全性,这导致现在需要修复(临时) 解决永久性问题
谢谢你的提示。我发现这解决了问题。当您删除重试和超时选项并选中FWIW时,我得到的是503错误,但有一个超时。事实证明,对于我的
ProxyPass*
行,我不能使用实际的服务器名,而是需要使用
localhost
或我的IP地址,例如
ProxyPass/http://localhost/
已工作,但
ProxyPass/http://example.com/
未解决:我认为这不是导致503的唯一原因。因为SELinux已禁用。这可能是VirtualHost配置错误。文件名和位置是什么?今天突然,apache proxy停止在IP为1.2.3.4的本地计算机上为443工作,因此从
ProxyPass/http://1.2.3.4:1234
更改为
ProxyPass/http://localhost:1234
(ProxyPassReverse也同样如此)-我不知道今天为什么会发生这种事。UnattendedUpdate没有安装与apache相关的东西,今天也没有运行。@Manish文件/etc/apache2/sites available/your-domain.com-le-ssl.conf或Centos等效文件。是的,将my-dom.com:更改为localhost:在ubuntudiobling安全性方面也为我发挥了作用,这不会解决任何问题。
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
 /usr/sbin/setsebool httpd_can_network_connect 1
/usr/sbin/setsebool -P httpd_can_network_connect 1