обработка отказа nginx без выравнивания нагрузки

Нам нравится Zabbix на работе. Это, оказывается, прибывает установленное с Ubuntu также.

И это может отправить SMS среди целого плота других вещей.

13
задан 2 January 2016 в 16:22
3 ответа

Вам нужна активная + пассивная установка. Вот пример фрагмента nginx conf, чтобы вы начали:

upstream backend {
    server 1.2.3.4:80 fail_timeout=5s max_fails=3;
    server 4.5.6.7:80 backup;
}

server {
    listen 80;
    server_name whatevs.com;

    location / {
        proxy_pass http://backend;
    }
}

Итак, «обычно» все запросы будут отправляться на хост 1.2.3.4. Если мы получим три ошибки в этом ящике, то 4.5.6.7 вступит во владение.

13
ответ дан 2 December 2019 в 21:26

Балансировка нагрузки в nginx очень проста, мы просто настраиваем имена серверов в области upstream, где пишем список серверов для балансировки нагрузки.
nginx поддерживает другой алгоритм балансировки нагрузки по умолчанию это круглый робот, но мы настраиваем его различными ключами, например ip_hash...

http{
 upstream servername{
    ip_hash//for sticky hash
    least_conn//FOR least connection 
    sever localhost:1001;
    sever localhost:1002;
    sever localhost:1003;
}
0
ответ дан 2 December 2019 в 21:26

Расширяя ответ chrskly, вы можете настроить 3 флага / конфигурации.

  1. fail_timeout : Общее время до неудачных попыток, а также пометить сервер как DOWN для того же времени. Если 5 секунд, то будет пытаться max_fail попыток в течение 5 секунд, и если все еще не удалось, пометить этот сервер как DOWN на 5 секунд.
  2. max_fail : максимальное количество попыток
  3. proxy_connect_timeout : Время ожидания соединения.

В следующем примере GRPC, если главный сервер не может быть подключен в течение 7 секунд, переключитесь на резервное копирование и отметьте главный сервер как отключенный на 6000 секунд:

upstream grpcservers {
    server 192.168.0.XX:9997 fail_timeout=6000s max_fails=1;  # After 1 fail in 6000s, Main server is marked unavailable for 6000s.
    server 192.168.0.XX:9999 backup;
        } 
location / {
            grpc_pass grpc://grpcservers;
            grpc_connect_timeout 7s;  # If conn cant be made in 7sec, switch to backup
        }

0
ответ дан 2 December 2019 в 21:26

Теги

Похожие вопросы