我在端口 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_connect
是off
解决方法是输入:togglesebool httpd_can_network_connect
答案3
运行以下命令确保端口 8080 正在监听
netstat -tlpn
如果没有,则重新启动 Jenkins 服务器
sudo /etc/init.d/jenkins start
现在应该可以正常工作了。希望它能有所帮助