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>
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기