У меня есть следующая конфигурация HAProxy:
слушать сни-443
привязать *:443
режим TCP
тайм-аут соединения 4 с
таймаут клиента 3м
таймаут сервера 3м
tcp-запрос проверка-задержка 5 с
Содержимое tcp-запроса принимается, если { req.ssl_hello_type 1 }
acl без SSL req.ssl_hello_type 0
использовать сервер backend1.default.svc.cluster.local, если !no-ssl { req_ssl_sni -i www.example.com }
сервер backend1.default.svc.cluster.local 10.96.245.95:443 вес 0
использовать сервер backend2.default.svc.cluster.local, если !no-ssl { req_ssl_sni -i demo.example.com }
сервер backend2.default.svc.cluster.local 10.96.184.199:443 вес 0
если я посещу www.example.com, все хорошо. Но когда я делаю это после перезагрузки demo.example.com с высокой частотой (забивание на Shift-Ctrl-R в браузере) попадаю в demo.example.com. Да, именно: я открываю www.example.com в браузере, но HAProxy направляет его на backend2 (который возвращает ошибку).
Судя по всему, HAProxy не до конца понимает, что эти два сервиса — не альтернативы для балансировки нагрузки, а совершенно разные продукты. Как я могу гарантировать что www.example.com заканчивается backend1?