Переклад статті Use Nginx for Proxy Services and Software Load Balancing
Серед додаткових особливостей nginx є можливість використання його як проксі (front end proxy) для передачі запитів на інші веб-сервери, Nginx також може виступати в якості Front end інтерфейсу для кластеру з серверів і навіть для балансування навантаження (load balancer).
Розглянемо наступні витримки конфігурації, які описують кластер appcluster:
Уривок файлу : nginx.conf
http {
# [...]
upstream appcluster {
server lollipop.ducklington.net:8801;
server lollipop.ducklington.net:8802;
server lollipop.ducklington.net:8803;
server lollipop.ducklington.net:8804;
server simons.ducklington.net:8801;
server simons.ducklington.net:8802;
server simons.ducklington.net:8803;
server simons.ducklington.net:8804;
}
# [...]
server {
listen 21.43.56.87:80;
server_name ducklington.org www.ducklington.org;
location / {
proxy_pass http://appcluster;
}
}
# [...]
} |
http {
# [...]
upstream appcluster {
server lollipop.ducklington.net:8801;
server lollipop.ducklington.net:8802;
server lollipop.ducklington.net:8803;
server lollipop.ducklington.net:8804;
server simons.ducklington.net:8801;
server simons.ducklington.net:8802;
server simons.ducklington.net:8803;
server simons.ducklington.net:8804;
}
# [...]
server {
listen 21.43.56.87:80;
server_name ducklington.org www.ducklington.org;
location / {
proxy_pass http://appcluster;
}
}
# [...]
}
У цьому прикладі ми описали просте балансування по принципу round-robin за допомогою директиви upstream.
Всередині цього блоку ми описали вісім серверів, кожен з яких працює на різних хостах і портах.
Конфігурація блоку upstream повинна бути разташована на початку блоку http конфігураційного файлу nginx.conf.
Сервери, що працюють на портах з 8801 по 8804 на хостах lollipop.ducklington.net і simons.ducklington.net отримають одинакову кількість запитів направлених в блок appcluster.
В блоці server Nginx налаштований для прослуховування запитів на певну IP-адресу і порт (наприклад, 21.43.56.87 і 80), і відповідати на запити до доменів ducklington.org і www.ducklington.org.
Усі запити про виділення ресурсів у цьому домені (наприклад, /) будуть передані у http://appcluster, який описаний в директиві upstream.
Read more