times_new_nginx/sites-enabled/upstreams.conf.tmpl

76 lines
3.0 KiB
Cheetah
Raw Normal View History

2024-09-20 12:08:56 +03:00
# Использовать вместе с конфигурациями обратного прокси
#Round Robin - запросы чередуются между серверами
upstream rr_backend {
server 127.0.0.1:8080 weight=5 max_fails=3 fail_timeout=60s;
server 10.9.0.9:80 weight=2 max_fails=3 fail_timeout=60s;
server google.com weight=3 max_fails=3 fail_timeout=60s;
server ya.ru backup;
keepalive 8;
2024-09-20 13:33:46 +03:00
2024-09-20 12:08:56 +03:00
#server [hostname, ip] [вес сервера] [максимальное кол-во неудачных подключений] [описано ниже]
#Weight. Чем больше вес, тем больше трафика будет направлено серверу
#fail_timeout. время, в течение которого должно произойти количество неудачных попыток(max_fails), чтобы сервер был помечен как недоступный
#keepalive. максимальное количество открытых подключений к серверам в группе
2024-09-20 13:33:46 +03:00
2024-09-20 12:08:56 +03:00
}
#Least Connections - запросы направятся к серверу с наименьшим числом подключений
upstream lc_backend {
least_conn;
server 127.0.0.1:8080;
server 10.9.0.9:80;
server google.com;
server ya.ru backup;
keepalive 8;
}
#IP Hash - запросы одного ip клиента всегда направляются на один сервер
upstream hi_backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
#!!! Сторонний модуль ngx_http_upstream_hash_module
#URL Hash - запросы одного url клиента всегда направляются на один сервер
upstream hu_backend {
hash $request_uri consistent; # Хешируем по URI запроса
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
#!!! Сторонний модуль nginx-sticky-module
#Sticky Sessions - привязка сессий
upstream ss_backend {
sticky;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
#пример блока server Sticky Sessions без модулей
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
location / {
set $backend "backend"; # Переменная для прокси
if ($cookie_route) {
set $backend "backend_$cookie_route";
}
proxy_pass http://$backend;
add_header Set-Cookie "route=$backend; Path=/";
}
}
}