우리 조직에서는 HA 프록시 v2.3을 사용하여 Apache 애플리케이션 서버의 로드 균형을 조정합니다. haproxy에는 세 개의 웹 애플리케이션 서버가 구성되어 있습니다. 하나의 웹 응용 프로그램 서버의 리소스 활용도가 높아지면 로드 밸런싱이 작동하지 않습니다. 모든 네트워크 요청은 이 고부하 서버를 묶습니다. 그러면 들어오는 요청이 다른 서버에 고르게 분산되지 않습니다. 따라서 우리는 해당 페이지에 접근할 수 없습니다. 따라서 이때 haproxy.cfg 파일을 편집해야 하며, 리소스 활용도가 높은 서버를 주석 처리하고 haproxy 서비스를 다시 로드해야 합니다. 그런 다음 응용프로그램만 시작됩니다.
이 상황을 극복할 수 있는 옵션이 haproxy.cfg 파일에 있습니까?
서버 부하가 높아지면 이 노드를 건너뛰고 요청을 다른 노드로 전달해야 합니다.
구성은 다음과 같습니다. -
글로벌
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096
maxpipes 1024
nogetaddrinfo
user haproxy
group haproxy
daemon
tune.ssl.default-dh-param 2048
ssl-default-bind-ciphers HIGH:!aNULL:! MD5!eNULL:!EXPORT:!DES:!RC4:!3DES:!PSK
기본값
log global
mode http
retries 3
option httplog
option dontlognull
option forwardfor
option http-server-close
stats enable
stats auth arun:arun@123
stats uri /haproxy
timeout server 1200s
timeout connect 20s
timeout client 60s
log 127.0.0.1:514 local0 notice
default-server rise 1
default-server fall 20
프런트엔드 애플리케이션 노드
bind *:443 ssl crt <Certificate file> no-sslv3 no-tlsv10 no-tlsv11
reqadd X-Forwarded-Proto:\ https
default_backend Application-nodes
백엔드 애플리케이션 노드
balance roundrobin
server <server name> <IP>:80 weight 1 maxconn 2500 check
server <server name> <IP>:80 weight 1 maxconn 2500 check
server <server name> <IP>:80 weight 1 maxconn 2500 check
log 127.0.0.1:514 local3 alert
log 127.0.0.1:514 local2 info