Краткое руководство по настройке конфигурационного файла веб-сервера nginx для балансировки нагрузки.
Переходим в каталог /etc/nginx/
# cd /etc/nginx/
и переименуем файл nginx.conf в nginx.conf.bak (на всякий случай)
# mv nginx.conf /etc/nginx/nginx.conf.bak
Затем создадим новый файл nginx.conf
# touch /etc/nginx/nginx.conf
открываем его
# nano /etc/nginx/nginx.conf
и внесём туда примерно такой конфиг:
events { worker_connections 768; } http { upstream nws { server 192.168.1.31:80; server 192.168.1.32:80; } server { listen 80; server_name gvm45.homenet.local; access_log /var/log/nginx/gvm45-access.log; error_log /var/log/nginx/gvm45-error.log; root /var/www/localhost; location / { proxy_pass http://gvm45/; proxy_read_timeout 15; proxy_connect_timeout 3; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } }
Самое главное здесь — это директива upstream, в ней находится перечень серверов с необходимыми параметрами для балансировки. В данной конфигурации нагрузка распределяется равномерно по серверам 192.168.1.31 и 192.168.1.32.
Также можно использовать параметр weight для того, чтобы распределить нагрузку по определённо заданной схеме, например:
server 192.168.1.31:80 weight=7; server 192.168.1.32:80 weight=3;
То есть, из примера выше, из 10 запросов 7 пойдут на 192.168.1.31, а 3 запроса — на второй 192.168.1.32.
При использовании параметра max_fails к серверу будет совершено заданное количество подключений, и если все попытки окажутся безрезультатными, сервер будет считаться недоступным.
При использовании параметра fail_timeout сервер будет считаться недоступным по истечении заданного времени.
При использовании параметра backup сервер будет использоваться только в том случае, если другие окажутся не доступны.
Например:
server 192.168.1.31:80 max_fails=5; server 192.168.1.32:80 max_fails=3 fail_timeout=10s; server 192.168.1.33:80 backup;
nginx имеет множество параметров, которые помогут настроить балансировку нагрузки для индивидуальных задач. Здесь будет не лишним воспользоваться документацией.