diff --git a/.gitignore b/.gitignore index 9c270ff..6b67465 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,4 @@ sites-enabled/* !sites-enabled/http_redirect.conf !sites-enabled/default.conf !sites-enabled/reverse.conf.tplm.expanded -!sites-enabled/upstreams.conf \ No newline at end of file +!sites-enabled/upstreams.conf.tplm \ No newline at end of file diff --git a/sites-enabled/upstreams.conf b/sites-enabled/upstreams.conf index 3e0f5c8..e478f44 100644 --- a/sites-enabled/upstreams.conf +++ b/sites-enabled/upstreams.conf @@ -1,7 +1,7 @@ -# Использовать вместе с конфигурациями обратного прокси - -#Round Robin - запросы чередуются между серверами - -#Least Connections - запросы направятся к серверу с наименьшим числом подключений - -#IP Hash - запросы одного клиента всегда направляются на один сервер \ No newline at end of file +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; +} diff --git a/sites-enabled/upstreams.conf.tplm b/sites-enabled/upstreams.conf.tplm new file mode 100644 index 0000000..b91f755 --- /dev/null +++ b/sites-enabled/upstreams.conf.tplm @@ -0,0 +1,73 @@ +# Использовать вместе с конфигурациями обратного прокси + +#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; + #server [hostname, ip] [вес сервера] [максимальное кол-во неудачных подключений] [описано ниже] + #Weight. Чем больше вес, тем больше трафика будет направлено серверу + #fail_timeout. время, в течение которого должно произойти количество неудачных попыток(max_fails), чтобы сервер был помечен как недоступный + #keepalive. максимальное количество открытых подключений к серверам в группе + } + +#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=/"; + } + } + }