Я пытаюсь разместить несколько веб-сайтов локально с включенным HTTPS, но для этого мне нужно настроить мой локальный компьютер на использование нескольких IP-адресов для localhost (я считаю). Есть ли способ одновременно разрешить несколько IP-адресов локально?
Я использую OS X 10.6 (стандартная версия - не сервер) и настройку сервера MAMP.
Спасибо!
Чтобы создать псевдоним localhost, вы можете использовать эту команду терминала для создания 'loopback':
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
Надеюсь, это поможет любому, кто столкнется с теми же проблемами, что и я!
Вам не нужно несколько IP-адресов для размещения нескольких веб-сайтов на одном веб-сервере. Вам необходимо использовать «Виртуальные хосты» (с https, если он вам тоже нужен). Здесь есть руководство для виртуальных хостов на MAMP http://sawmac.com/mamp/virtual/
Вам никогда не нужно добавлять дополнительные IP-адреса к локальному хосту в Linux или Windows. Они будут отвечать по умолчанию, без дополнительной настройки, на все IP-адреса из 127.0.0.0/8:
$ 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
Так что просто заставьте ваше приложение прослушивать любой IP-адрес из диапазона 127.0.0.0/8, и все будет в порядке.
Пример:
Одна консоль:
$ 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!
Как отметил комментатор, это является необходимо явно добавить IP-адреса в интерфейс localhost в MacOS / Darwin.