Назад | Перейти на главную страницу

Как заставить Apache пропустить привязку к неудачному интерфейсу?

Я запускаю 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