У нас установлено 3 сервера:
- Сервер A с Nginx + HAproxy для балансировки нагрузки
- серверный сервер B
- сервер backend C
Вот наш /etc/haproxy/haproxy.cfg
:
global
log /dev/log local0
log 127.0.0.1 local1 notice
maxconn 40096
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 50000
clitimeout 50000
srvtimeout 50000
stats enable
stats uri /lb?stats
stats realm Haproxy\ Statistics
stats auth admin:admin
listen statslb :5054 # choose different names for the 2 nodes
mode http
stats enable
stats hide-version
stats realm Haproxy\ Statistics
stats uri /
stats auth admin:admin
listen Server-A 0.0.0.0:80
mode http
balance roundrobin
cookie JSESSIONID prefix
option httpchk HEAD /check.txt HTTP/1.0
server Server-B <server.ip>:80 cookie app1inst2 check inter 1000 rise 2 fall 2
server Server-C <server.ip>:80 cookie app1inst2 check inter 1000 rise 2 fall 3
Все три сервера имеют достаточное количество ОЗУ и процессорных ядер для обработки запросов
Случайные ошибки HTTP 503 отображаются при просмотре: 503 Service Unavailable - No server is available to handle this request.
А также на консоли сервера:
Message from [email protected] at Dec 21 18:27:20 ...
haproxy[1650]: proxy Server-A has no server available!
Обратите внимание, что в 90% случаев ошибок нет. Эти ошибки происходят случайным образом.