Load balancing — распределение входящего трафика между несколькими серверами. Для нагрузки, не подходящей одному серверу — распределение между 2, 3, 10 или сотнями. Повышает uptime (упал один — остальные работают) и производительность.
Алгоритмы
Round Robin — по очереди. Простой и популярный.
Least Connections — с минимумом подключений. Точнее, сложнее.
IP Hash — по IP клиента. Сессия с одним сервером.
Weighted — вес каждого сервера.
Geographic — ближайший к клиенту.
Типы балансировщиков
Software — Nginx, HAProxy, Apache mod_proxy. Бесплатно, гибко.
Hardware — F5, Citrix NetScaler. Дорого, мощно.
Cloud — AWS ELB, Google Cloud Load Balancing, Azure Load Balancer. Managed, pay-as-you-go.
Nginx пример
upstream backend {
server backend1.kompaniyam.uz weight=5;
server backend2.kompaniyam.uz weight=3;
server backend3.kompaniyam.uz weight=2;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
Session persistence
(1) IP Hash. (2) Sticky session. (3) Centralized в Redis/БД.
Health check
Балансировщик каждые 5-30 сек проверяет /health. При падении — трафик на другие.
Практика Sayt.uz
2% клиентов используют load balancing — крупные e-commerce и SaaS. Sayt.uz сама использует (4 app-server + HAProxy). Для клиентов настраиваем на VPS Pro/Dedicated. Совет: для маленьких сайтов избыточно. Имеет смысл от 10 000+ DAU.