NGINX Upstream - Как настроить балансировщик нагрузки
Nginx upstream - это функциональность, которая позволяет настроить балансировку нагрузки между несколькими серверами. Использование upstream позволяет улучшить производительность и надежность веб-сервера, распределяя запросы между несколькими экземплярами приложения, работающими на разных серверах.
Примеры кода, использующие upstream, могут выглядеть следующим образом:
1. Пример настройки upstream для балансировки нагрузки между двумя серверами:
upstream backend {
server server1.example.com weight=2;
server server2.example.com;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
В этом примере мы создаем upstream с двумя серверами: первый сервер имеет вес 2, а второй имеет вес 1 (по умолчанию). Настройка weight позволяет указывать, какую долю запросов должен получать каждый сервер. В данном случае, первый сервер будет получать два раза больше запросов, чем второй.
2. Пример настройки upstream для балансировки нагрузки между группой серверов, работающих на разных портах:
upstream backend {
server 10.0.0.1:8080;
server 10.0.0.2:8080;
server 10.0.0.3:8081;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
В этом примере мы создаем upstream с тремя серверами, работающими на разных портах. Каждый сервер в группе будет получать примерно одинаковое количество запросов, т.к. weight не задан.
Таким образом, использование upstream позволяет настроить балансировку нагрузки между несколькими серверами для повышения производительности и надежности веб-сервера.