Я установил двухузловой кластер (активный / пассивный) с Corosync / Pacemaker и nginx в качестве обратного прокси. ОС - RHEL7, и на данный момент у машины только один сетевой интерфейс.
Я настроил два ресурса:
Вот объявления обоих ресурсов:
pcs resource create cluster-vip ocf:heartbeat:IPaddr2 ip=192.168.0.1 cidr_netmask=24 op monitor interval=30s
pcs resource create reverse-proxy systemd:nginx op monitor interval=5s meta failure-timeout=60s
pcs constraint colocation add reverse-proxy with cluster-vip INFINITY
pcs constraint order cluster-vip then reverse-proxy
Вчера я заметил неожиданное поведение при захвате сети. При взаимодействии с клиентами активный узел использует виртуальный IP-адрес (192.168.0.1). При взаимодействии с веб-серверами, расположенными во внутренней сети, он использует первичный IP-адрес интерфейса вместо vip (192.168.0.2 или 192.168.0.3 в зависимости от активного узла).
В результате я вынужден создать два разных правила на моем брандмауэре (одно для node1 и одно для node2) вместо того, чтобы просто разрешить vip взаимодействовать с веб-серверами. Я планирую добавить в кластер другие узлы, и было бы удобно не разрешать каждый узел один за другим, а просто разрешать vip раз и навсегда.
Имеет ли такое поведение логическое объяснение? Есть ли способ указать кардиостимулятору использовать только vip? И это хорошая практика? Я не хочу наделать глупостей, поэтому, если вы думаете, что мне не следует этого делать, я с удовольствием узнаю, почему.
С уважением
Я не считаю, что это вопрос указания кардиостимулятора использовать только виртуальный IP-адрес, а скорее указание Nginx использовать только виртуальный IP-адрес.
Я не эксперт по Nginx, но, прочитав их документацию, я нашел директиву конфигурации с именем proxy_bind
. Я считаю, что это может быть то, что вам нужно настроить, чтобы получить желаемое поведение. Из документации Nginx Вот.
Если ваш прокси-сервер имеет несколько сетевых интерфейсов, иногда вам может потребоваться выбрать определенный исходный IP-адрес для подключения к прокси-серверу или восходящему потоку. Это может быть полезно, если прокси-сервер за NGINX настроен для приема подключений из определенных IP-сетей или диапазонов IP-адресов.