![Apache 2.2 如何知道我的服务器的第二个 IP,以及如何隐藏它?](https://linux22.com/image/608885/Apache%202.2%20%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E6%88%91%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E7%AC%AC%E4%BA%8C%E4%B8%AA%20IP%EF%BC%8C%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E9%9A%90%E8%97%8F%E5%AE%83%EF%BC%9F.png)
我的服务器有两个 IP 地址,我想让两个 Apache 服务分别监听这两个 IP 地址。DNS 有以下内容:
- 将“intranet”指向服务器名称的 CNAME 别名
- 将服务器名称指向 IP 1 的主机 (A) 记录
- 将“dev”指向 IP 2 的主机(A)记录
我有一个正在运行的 Apache 服务Listen intranet:80
,但它决定监听 IP 1和IP 2,所以我无法启动第二个服务。当通过 DNS 的路径应该将它引导到 IP 1 时,它怎么会到达 IP 2?我猜它会解析为 127.0.0.1,然后绑定到所有可用的 IP。如果是这样的话,Listen IP1:80
实际上会强制它不使用 IP 2,还是会应用相同的逻辑并使用所有可用的 IP?如果是后者,是实际上有没有办法将 Apache 配置为只监听 IP 1?(我只是询问而不是实验,因为这是一个实时系统,我不想造成比我需要的更多的停机时间。)
答案1
使用Listen IP1:80
并且它将只绑定到该IP。
http://httpd.apache.org/docs/2.2/bind.html
当 Apache 启动时,它会绑定到本地计算机上的某个端口和地址并等待传入请求。默认情况下,它会监听计算机上的所有地址。但是,可能需要告知它监听特定端口,或仅监听选定的地址,或两者兼而有之。