Я запускаю Apache внутри VirtualBox на ноутбуке. Я также использовал VirtualHost-ы на основе IP. Я хочу иметь доступ к локальной сети всякий раз, когда я двигаюсь, к определенным заранее известным сетям. IP, однако, не "перемещение", поскольку я настроил DHCP на сетевых маршрутизаторах для присвоения статических IP-адресов MAC-адресам, поэтому IP-адрес в основном статичен для каждого местоположения.
Я хочу, чтобы все эти IP-адреса были в моей конфигурации Apache.
Однако директива Listen не работает, когда один интерфейсов недоступен.
Есть ли способ заставить работать директиву Listen в ИЛИ мода вместо И мода?
Спасибо.
Если вы хотите, чтобы Apache прослушивал все IP-адреса, назначенные машине, вы можете просто указать директиву bind без какого-либо IP-адреса, например:
Listen 80
Если вам нужно выполнить привязку только к подмножеству назначенных адресов, возможное решение этой проблемы состоит в том, чтобы гарантировать, что оба IP-адреса всегда назначаются машине, даже если они не назначены физическому интерфейсу.
Из вопросов и комментариев я понимаю, что в настоящее время вы используете BSD, но открыты для других платформ, если это решит проблему. Вот как я сделал нечто очень похожее на Ubuntu. Я ожидаю, что некоторые варианты этого также будут работать в BSD, но у меня недостаточно знаний BSD, чтобы дать подробное решение для BSD.
Linux имеет dummy
сетевой драйвер с фиктивным интерфейсом под названием dummy0
которым вы можете назначать IP-адреса. Эти IP-адреса будут считаться локальными точно так же, как IP-адреса, назначенные физическим интерфейсам, поэтому Apache может связываться с ними.
В /etc/network/interfaces
Я добавил post-up
строка вроде этой:
post-up /usr/local/sbin/eth0-post-up
И в /usr/local/sbin/eth0-post-up
Затем я загрузил dummy
драйвер и настроил все необходимые IP-адреса:
#!/bin/bash
modprobe dummy
ip address add dev dummy0 10.58.249.248/32
ip address add dev dummy0 10.138.65.134/32