Apache Httpd返回503服务,无法使用Tomcat 8的mod_代理
我正在尝试将Tomcat与Apache集成。我的目标是用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
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