Краткое руководство по настройке конфигурационного файла веб-сервера 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 имеет множество параметров, которые помогут настроить балансировку нагрузки для индивидуальных задач. Здесь будет не лишним воспользоваться документацией.