Сегодня будем делать с тобой свой Nginx Plus, тот который платный, а именно реализуем фичу «Active health checks».
Это когда у тебя к примеру 10 апстримов и если один из них умирает, то какой-нибудь богатый клиент получит 502 ошибку, обозлится и ничего не купит. А должен автоматически попасть на другой, более живой апстрим и потратить денежку.
Само собой будем применять инновационные технологии и немного возьмем из фреймворка «костыли». Ну а как ты хотел? Бест практик! На халяву и уксус сладкий, как говорится. Короче все элементарно. Погнали.
Ставим ванильный nginx и делаем так:
upstream backend {
server unix:/var/run/haproxy/backend.sock;
}
location / {
proxy_pass http://backend;
}
Ставим рядом haproxy, и конфигурируем блоки frontend и backend таким образом:
defaults
retries 3
timeout check 5s
frontend bashdays-backend
bind /var/run/haproxy/backend.sock user nginx mode 600
mode tcp
default_backend bashdays-backend
option tcplog
backend bashdays-backend
b