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

Будет ли этот «сценарий перезапуска» HAProxy работать так изящно, как я думаю?

Я собрал этот сценарий из разных мест. Я надеюсь, что после запуска он сделает следующее:

  1. Приостановить весь «НОВЫЙ» HTTP-трафик для портов 80 и 443 - просто «приостановить» их, не выдавать никаких ошибок
  2. корректно перезапустите haproxy, когда все "обрабатываемые" запросы будут выполнены
  3. Отмените приостановку HTTP-трафика и продолжайте работу в обычном режиме.

Это как он будет работать? Я что-нибудь пропустил? У нас есть тысячи правил acl, основанных на ip, которые хранятся в файле, на который ссылается haproxy, и нам нужно перезагружать его несколько раз в минуту.

#!/bin/sh

# hold/pause new requests
iptables -I INPUT -p tcp --dport 80 --syn -j DROP
iptables -I INPUT -p tcp --dport 443 --syn -j DROP
sleep 1

# gracefully restart haproxy
/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)

# allow new requests to come in again
iptables -D INPUT -p tcp --dport 80 --syn -j DROP
iptables -D INPUT -p tcp --dport 443 --syn -j DROP

Изменить: я бы хотел как-то протестировать его, но у нас пока нет трафика (за исключением моего тестирования).

Источники:

http://www.forouzani.com/reload-haproxy-cfg-without-restarting.html

https://github.com/Mirantis/openstack-lbaas/issues/3

Изящная перезагрузка HAProxy с нулевой потерей пакетов

Судя по этим статьям, все должно работать нормально.

Просто помните, что у вас нет трафика, который вы всегда можете имитировать.

Использовать тест apache инструмент для размещения поддельного трафика.

Просто убедитесь, что загружаемой странице требуется несколько секунд для загрузки, чтобы проверить худший сценарий.

Я создал для тебя Кулинарная книга это доказывает, что предоставленная вами конфигурация работает правильно.