我尝试在启用 HTTPS 的情况下在本地托管多个网站,但为了做到这一点,我需要将本地计算机配置为使用多个 IP 地址作为本地主机(我相信)。有没有办法同时在本地解析多个 IP 地址?
我正在使用 OS X 10.6(标准版 - 非服务器)和 MAMP 服务器设置。
谢谢!
答案1
您不需要多个 IP 即可在一个 Web 服务器上托管多个网站。您需要使用“虚拟主机”(如果需要,也可以使用 https)。这里有一个 MAMP 虚拟主机指南http://sawmac.com/mamp/virtual/
答案2
要为 localhost 设置别名,您可以使用此终端命令创建“环回”:
ifconfig lo0 alias 127.0.0.2
通过设置 localhost 别名,您可以创建多个 HTTPS 虚拟主机,如下所示:
<VirtualHost 127.0.0.1:443> ...... </VirtualHost>
<VirtualHost 127.0.0.2:443> ...... </VirtualHost>
如果需要,您还可以通过 root 的 cron 在启动时初始化这些主机:
sudo crontab -e
@reboot ifconfig lo0 alias 127.0.0.2
希望这能帮助遇到与我相同问题的人!
答案3
您永远不需要在 Linux 或 Windows 上向本地主机添加其他 IP 地址。它们将默认响应来自 127.0.0.0/8 的所有 IP 地址,无需额外配置:
$ ping 127.254.0.100
PING 127.254.0.100 (127.254.0.100) 56(84) bytes of data.
64 bytes from 127.254.0.100: icmp_seq=1 ttl=64 time=0.026 ms
因此,只需让您的应用程序监听 127.0.0.0/8 范围内的任何 IP,就可以了。
例子:
一个控制台:
$ nc -vvl 127.0.34.2 9022
Connection from 127.0.0.1 port 9022 [tcp/*] accepted
Hello
另一个控制台:
$ echo Hello | nc -vv 127.0.34.1 9022
nc: connect to 127.0.34.1 port 9022 (tcp) failed: Connection refused
$ echo Hello | nc -vv 127.0.34.2 9022
Connection to 127.0.34.2 9022 port [tcp/*] succeeded!
正如一位评论者指出的那样,是需要在 MacOS/Darwin 上明确将 IP 添加到本地主机接口。