Я собрал этот сценарий из разных мест. Я надеюсь, что после запуска он сделает следующее:
Это как он будет работать? Я что-нибудь пропустил? У нас есть тысячи правил 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
Судя по этим статьям, все должно работать нормально.
Просто помните, что у вас нет трафика, который вы всегда можете имитировать.
Использовать тест apache инструмент для размещения поддельного трафика.
Просто убедитесь, что загружаемой странице требуется несколько секунд для загрузки, чтобы проверить худший сценарий.
Я создал для тебя Кулинарная книга это доказывает, что предоставленная вами конфигурация работает правильно.