1.개요
※ 이전 작업 중 Apache 2EA + NodeJS React(리액트) 2EA Failover를 위해 찾던 중 ReverseProxy에 대한 정보가 기재되어있어 로드 밸런싱을 구성해본다.
2. 작업 설정 내역
# 설정 파일 명 : httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
# 프록시 관련 옵션 : extra/httpd-ssl.conf
# if https is used, make sure X-Forwarded-Proto is send
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}
SetEnvIf X-Forwarded-For (.*) REMOTE_ADDR=$1
SetEnvIf X-Forwarded-For (.*) REMOTE_IP=$1
RPAF_Enable On
RPAF_ProxyIPs #{로드밸런서 VIP}
RPAF_Header X-Forwarded-For
RPAF_SetHostName On
RPAF_SetHTTPS On
RPAF_SetPort On
# 프록시 IP를 헤더에서 추출 하여 AccessLog에 정상기록 한다.
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
<VirtualHost>
ProxyRequests Off
ProxyPreserveHost On
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy "balancer://#{밸런서 네임}">
BalancerMember "http://#{AP01 서버}:10080" route=1
BalancerMember "http://#{AP01 서버}:10080" route=2
ProxySet stickysession=ROUTEID
</Proxy>
# 로드밸런서 모델
ProxyPass "/" "balancer://#{밸런서 네임}/"
ProxyPassReverse "/" "balancer://#{밸런서 네임}/"
# 단일 노드
# ProxyPass / http://172.16.30.20:10080/
# ProxyPassReverse / http://172.16.30.20:10080/
</VirtualHost>
'Linux' 카테고리의 다른 글
[CentOS][PufferPanel] 게임 어플리케이션 통합관리 (G-APM) (0) | 2022.07.26 |
---|---|
[HAPROXY][SSL] SSL certificate problem: unable to get local issuer certificate SSL 인증 실패 오류 (0) | 2022.07.26 |
[HAPROXY] MariaDB Send-Proxy 모니터링 (0) | 2022.07.16 |
[LINUX][DNS][NAMED] DNS 서버 (Named) Config 검증 (Check) (0) | 2022.04.10 |
[LINUX][MARIADB][SSH]Master - Slave 모니터링 (0) | 2022.04.10 |