Apache 2.4反向代理配置故障求助:EC2实例上代理请求返回404或连接拒绝
Apache 2.4反向代理配置故障求助:EC2实例上代理请求返回404或连接拒绝
我在AWS上创建了一台带公网IP(100.0.0.0)的EC2实例,配置Apache 2.4反向代理时遇到了两个棘手的问题,想请大家帮忙排查:
问题1:代理到外部站点返回404,无日志报错
我做了这些操作:
- 给EC2安全组添加了允许所有IPv4来源的HTTP(80端口)入站规则
- 在
/etc/httpd/conf/httpd.conf中添加了以下反向代理配置:
<VirtualHost *:80> ProxyPreserveHost On ProxyPass /test/ http://www.example.com/ ProxyPassReverse /test/ http://www.example.com/ </VirtualHost>
- 重启Apache后访问
http://100.0.0.0/test/,浏览器直接返回404 - Not Found,但查看Apache的error_log,里面完全没有相关的报错信息。
问题2:代理到本地8080端口返回连接拒绝
尝试把代理目标换成本地监听的8080服务,操作如下:
- 修改VirtualHost配置,分别测试了两种目标地址:
<VirtualHost *:80> ProxyPreserveHost On ProxyPass /test/ http://localhost:8080/ ProxyPassReverse /test/ http://localhost:8080/ </VirtualHost>
<VirtualHost *:80> ProxyPreserveHost On ProxyPass /test/ http://127.0.0.1:8080/ ProxyPassReverse /test/ http://127.0.0.1:8080/ </VirtualHost>
- 访问时Apache日志里出现了明确的连接拒绝报错:
Connection refused: AH00957: http: attempt to connect to 127.0.0.1:8080 (127.0.0.1) failed AH01114: HTTP: failed to make connection to backend: 127.0.0.1, referer: http://100.0.0.0/
- 确认本地8080端口是正常监听的,执行
netstat -aon | grep 8080得到结果:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 22304 TCP [::]:8080 [::]:0 LISTENING 22304 TCP [::1]:8080 [::]:0 LISTENING 25212
- 额外给EC2安全组添加了允许所有IPv4的出站规则,但问题还是没解决。
我已经参考过相关的Apache反向代理配置教程和官方文档,但还是没找到问题根源。想问问大家:是AWS安全组还有遗漏的规则需要配置,还是Apache反向代理的配置步骤有什么我没注意到的地方?
备注:内容来源于stack exchange,提问作者Travis
相关产品推荐
相关产品推荐

