我创建了一个具有公共 IP 的 AWS EC2 实例,我们称之为 100.0.0.0。
我为安全组添加了一条规则,以允许任何 IPv4 在端口 80 上传入 HTTP 流量。
我在配置文件中添加了:/etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass /test/ http://www.example.com/
ProxyPassReverse /test/ http://www.example.com/
</VirtualHost>
当我去http://100.0.0.0/测试/,我的浏览器显示 404 - Not Found。error_log 中没有任何内容。
我也尝试过本地主机
<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>
这给了我日志:
连接被拒绝:AH00957:http:尝试连接到 127.0.0.1:8080(127.0.0.1)失败
AH01114:HTTP:无法连接到后端:127.0.0.1,引荐来源:http://100.0.0.0/
由于这是使用 AWS 创建的,因此我还尝试创建出站规则,允许任何 IPv4。我不确定是否需要在 AWS 中设置更多规则,或者我是否错过了配置代理的步骤。
请参阅我关注的文档:https://linuxtechlab.com/apache-as-reverse-proxy-centos-rhel/
我还参考了:https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html这让我想到www.example.com例子。
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