![Apache 配置为在 NAT 防火墙后面提供来自其他本地机器的页面](https://linux22.com/image/800018/Apache%20%E9%85%8D%E7%BD%AE%E4%B8%BA%E5%9C%A8%20NAT%20%E9%98%B2%E7%81%AB%E5%A2%99%E5%90%8E%E9%9D%A2%E6%8F%90%E4%BE%9B%E6%9D%A5%E8%87%AA%E5%85%B6%E4%BB%96%E6%9C%AC%E5%9C%B0%E6%9C%BA%E5%99%A8%E7%9A%84%E9%A1%B5%E9%9D%A2.png)
我有一个通过 NAT 调制解调器链接到 Ubuntu 上的 Apache 的公共 IP 地址。如何配置 Apache 以提供来自其他位于同一 NAT 调制解调器后面的机器的页面?(我不想让这些其他机器可直接从互联网访问。)
答案1
我正在为此使用 apache 代理。
将请求代理到另一个 Web 服务器的虚拟主机配置示例如下:
<VirtualHost *:80>
ServerName example.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://secondapache/
ProxyPassReverse / http://secondapache/
</VirtualHost>
其中“secondapache”需要可解析,或者您可以使用IP地址,只需确保在ProxyPass和ProxyPassReverse行中它是相同的(不要忘记那些http://和/)
还需要 ProxyPreserveHost On,以便第二个网络服务器获取用户在浏览器中输入的真实主机名。
这是针对 apache HTTP 反向代理的,您也可以使用例如 varnish 来配置 HTTP 反向代理。
另一种方法就是简单地使用 NAT:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination secondapacheIP:80