Apache 代理不适用于本地主机端口

Apache 代理不适用于本地主机端口

我在端口 80 上运行 Apache 2.2.15,并希望在本地主机端口 8983 上代理 servlet 引擎。我在另一台服务器上运行该设置,但已移至 CentOS 6 计算机。它在新机器上不起作用。我的虚拟主机配置:

ProxyRequests 关闭

<代理 *>
   命令拒绝、允许
   允许所有人
</代理>

代理通行证 / http://localhost:8983/
ProxyPassReverse / http://localhost:8983/

如果我使用浏览器并直接访问端口 8983(不通过 Apache 代理),我可以访问端口 8983,但如果我访问/通过 Apache 服务器,则无法连接到它。

我可以将代理的内容更改为类似http://slashdot.org并且 Slashdot 已成功代理(所以我知道它通常可以代理)。

我在 Apache 中打开了调试日志,这是事务:

[2012 年 4 月 22 日星期日 16:47:04] [调试] mod_proxy_http.c(56): 代理:HTTP:规范化 URL //localhost:8983/
[2012 年 4 月 22 日星期日 16:47:04] [调试] proxy_util.c(1506): [客户端 184.39.79.7] 代理: http: 为 http://localhost:8983/ 找到了工作程序 http://localhost:8983/
[2012 年 4 月 22 日星期日 16:47:04] [调试] mod_proxy.c(998): 运行方案 http 处理程序(尝试 0)
[2012 年 4 月 22 日星期日 16:47:04] [调试] mod_proxy_http.c(1962): 代理:HTTP:服务 URL http://localhost:8983/
[2012 年 4 月 22 日星期日 16:47:04] [调试] proxy_util.c(2011): 代理:HTTP:已获取 (localhost) 的连接
[2012 年 4 月 22 日星期日 16:47:04] [调试] proxy_util.c(2067): 代理:将 http://localhost:8983/ 连接到 localhost:8983
[2012 年 4 月 22 日星期日 16:47:04] [调试] proxy_util.c(2193): 代理:已连接 / 至 localhost:8983
[2012 年 4 月 22 日星期日 16:47:04] [调试] proxy_util.c(2444): 代理:HTTP:创建了 fam 10 套接字以连接到本地主机
[2012 年 4 月 22 日星期日 16:47:04] [调试] proxy_util.c(2455): (13)权限被拒绝:代理:HTTP:尝试连接到[::1]:8983 (localhost)失败
[2012 年 4 月 22 日星期日 16:47:04] [调试] proxy_util.c(2444): 代理:HTTP:创建了 fam 2 套接字以连接到本地主机
[2012 年 4 月 22 日星期日 16:47:04] [错误] (13)权限被拒绝:代理:HTTP:尝试连接到 127.0.0.1:8983 (localhost) 失败
[2012 年 4 月 22 日星期日 16:47:04] [错误] ap_proxy_connect_backend 禁用 (localhost) 的工作程序
[2012 年 4 月 22 日星期日 16:47:04] [调试] proxy_util.c(2029): 代理:HTTP:已释放 (localhost) 的连接
[2012 年 4 月 22 日星期日 16:47:04] [调试] mod_proxy_http.c(56): 代理:HTTP:规范化 URL //localhost:8983/favicon.ico
[2012 年 4 月 22 日星期日 16:47:04] [调试] proxy_util.c(1506): [客户端 184.39.79.7] 代理: http: 为 http://localhost:8983/favicon.ico 找到了工作程序 http://localhost:8983/
[2012 年 4 月 22 日星期日 16:47:04] [调试] mod_proxy.c(998): 运行方案 http 处理程序(尝试 0)
[2012 年 4 月 22 日星期日 16:47:04] [调试] mod_proxy_http.c(1962): 代理:HTTP:服务 URL http://localhost:8983/favicon.ico
[2012 年 4 月 22 日星期日 16:47:04] [调试] proxy_util.c(1949): 代理:HTTP:重试 (localhost) 的工作程序
[2012 年 4 月 22 日星期日 16:47:04] [错误] 代理:HTTP:已禁用(localhost)的连接

我不知道 fam 10 或 fam 2 套接字是什么。有人知道为什么它没有代理到我的备用端口吗?

谢谢!

答案1

以下是解决您问题的方法:

要打开这个布尔值,你只需使用此行(root 权限)

setsebool -P httpd_can_network_connect on

或者

sudo setsebool -P httpd_can_network_connect on

希望有帮助。参考见此处: https://wiki.centos.org/TipsAndTricks/SelinuxBooleans

答案2

我解决了我的问题:

如果我做:sestatus -b | grep httpd

我可以看到的httpd_can_network_connectoff

解决方法是输入:togglesebool httpd_can_network_connect

答案3

运行以下命令确保端口 8080 正在监听

netstat -tlpn

如果没有,则重新启动 Jenkins 服务器

sudo /etc/init.d/jenkins start

现在应该可以正常工作了。希望它能有所帮助

相关内容