у меня есть Keepalived
настроен с LVS
для распределения нагрузки между четырьмя веб-серверами Nginx (режим RR, без постоянных подключений). Я планировал включить SPDY однако кажется, что SPDY
устанавливает одно TCP-соединение для каждого хоста, поэтому, когда веб-узел удаляется из пула, клиент пытается отправить дальнейшие запросы по исходному соединению, но балансировщик нагрузки не может переместить это существующее соединение на новый сервер, поэтому все веб-узлы запрашивает тайм-аут для этого клиента.
Есть ли способ заставить балансировщик нагрузки закрыть все соединения с отказавшим сервером или, возможно, любое другое решение для этого?
Попробуйте включить постоянство, а затем expire_quiescent_template
123 expire_quiescent_template - BOOLEAN
124 0 - disabled (default)
125 not 0 - enabled
126
127 When set to a non-zero value, the load balancer will expire
128 persistent templates when the destination server is quiescent.
129 This may be useful, when a user makes a destination server
130 quiescent by setting its weight to 0 and it is desired that
131 subsequent otherwise persistent connections are sent to a
132 different destination server. By default new persistent
133 connections are allowed to quiescent destination servers.
134
135 If this feature is enabled, the load balancer will expire the
136 persistence template if it is to be used to schedule a new
137 connection and the destination server is quiescent.
http://www.mjmwired.net/kernel/Documentation/networking/ipvs-sysctl.txt