Welcome! Log In Create A New Profile

Advanced

Балансировка нагрузки при недоступности backend

November 09, 2018 09:11AM
Ситуация такая: слушаем порт 80 и перекидываем запрос с него на порты 8080 и 8081. За каждым из этих портов стоит FCGI-бекэнд. Примерный файл конфигурации:


# настройка upstream - делаем балансировку на два разных порта
upstream http_stream {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}

# основная точка входа, нагрузка на которую балансируется между портами 8080 и 8081
server {
listen 80 default_server;
listen [::]:80 default_server;
location / {
proxy_pass http://http_stream;
}
}

# первый бекэнд - пробрасываем на FCGI по Unix Socket
server {
listen 8080 default_server;
listen [::]:8080 default_server;

server_name _;

location / {
fastcgi_pass unix:/home/skostik/sockets/1.sock;
}
}

# второй бекэнд - пробрасываем на FCGI по Unix Socket
server {
listen 8081 default_server;
listen [::]:8081 default_server;

server_name _;

location / {
fastcgi_pass unix:/home/skostik/sockets/2.sock;
}
}


Проблема: если бекэнд не отвечает по сокету unix:/home/skostik/sockets/1.sock (т.е. nginx не может установить соединение), то nginx не делает балансировку (не перекидывает запрос на порт 8081), а возвращает ошибку. Можно ли настроить систему так, чтобы: если один бекэнд недоступен, то нужно слать исходный HTTP-запрос на другой порт.
Subject Author Posted

Балансировка нагрузки при недоступности backend

kseleznyov November 09, 2018 09:11AM

Re: Балансировка нагрузки при недоступности backend

Maxim Dounin November 09, 2018 09:44AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 293
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready