728x90
Apache 웹 서버는 웹 사이트나 애플리케이션의 트래픽을 여러 서버에 분산시키는 로드 밸런서로도 사용합니다.
이를 통해 서버의 부하를 줄이고 성능을 향상시키며 고가용성을 보장할 수 있습니다.
로드 밸런서란?
로드 밸런서는 네트워크 트래픽을 여러 서버로 분산시키는 역할을 합니다.
- 부하 분산 : 여러 서버에 트래픽을 분산시켜 서버 과부하를 방지합니다.
- 성능 향상 : 여러 서버가 트래픽을 분담하여 응답 시간이 단축됩니다.
- 고가용성 : 특정 서버에 문제가 발생해도 다른 서버에서 요청을 처리하여 서비스의 가용성을 높입니다.
1. 모듈 활성화
httpd.conf 파일은 일반적으로 /etc/httpd/conf/httpd.conf 또는 /etc/apache2/httpd.conf에 위치합니다.
# mod_proxy 모듈 활성화
LoadModule proxy_module modules/mod_proxy.so
# mod_proxy_balancer 모듈 활성화
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
# mod_lbmethod_byrequests 모듈 활성화
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
2. 로드 밸런서 설정
<VirtualHost *:80>
ServerAdmin samso@tistory.com
DocumentRoot /samso/samsodir/samsoroot
# 로드 밸런서 설정
<Proxy "balancer://samsolb">
BalancerMember http://192.168.1.101:80 loadfactor=1 timeout=5 retry=60 max=50 route=node1
BalancerMember http://192.168.1.102:80 loadfactor=2 timeout=5 retry=60 max=50 route=node2 status=HotStandby
ProxySet lbmethod=byrequests stickysession=JSESSIONID nofailover=On
</Proxy>
ProxyPass "/app" "balancer://samsolb/"
ProxyPassReverse "/app" "balancer://samsolb/"
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
로드 밸런서 설정 설명
- balancerMember : 로드 밸런서에 포함될 서버를 지정합니다.
- ProxySet : 로드 밸런서 풀에 대한 설정을 지정합니다.
- lbmethod : 로드 밸런싱 방법을 지정합니다.
- stikeysession : 세션 유지를 위한 쿠키 이름을 지정합니다.
- ProxyPass : 클라이언트 요청을 로드 밸런서에 전달합니다.
- ProxyPassReverse : 프록시된 서버의 응답 헤더를 클라이언트에게 전달합니다.
3. BalancerMember 옵션
옵션 | 설명 |
status | 백엔드 서버의 상태를 설정합니다. [Disabled] [HotStandby] [Ignored] |
loadfactor | 각 백엔드 서버에 할당되는 부하의 가중치를 지정합니다. [Default : 1] |
retry | 백엔드 서버가 다운된 후 다시 시도할 때 까지 대기 시간을 지정합니다. [초 단위] |
timeout | 백엔드 서버로부터 응답을 기다리는 최대 시간을 지정합니다. [초 단위] |
route | 백엔드 서버로 세션을 고정하는 라우트 정보를 지정합니다. |
max | 백엔드 서버로 전달되는 최대 동시 연결 수를 지정합니다. |
min | 백엔드 서버의 최소 연결 수를 지정합니다. |
smax | 백엔드 서버의 최대 유휴 연결 수를 지정합니다. |
ttl | 유휴 연결의 최대 생명 시간을 지정합니다. [초 단위] |
flushpackets | 응답 패킷을 전달 할 때 플러시할지 여부를 지정합니다. [On] [Off] |
ping | 백엔드 서버로 ping을 보내는 주기를 지정합니다. [초 단위] |
pingwait | ping 응답을 기다릴 시간을 지정합니다. [초 단위] |
keepalive | 백엔드 서버와의 keep-alive 연결을 사용할지 여부를 지정합니다. [Defalut : On] |
4. 설정 적용
# systemctl restart httpd
728x90
반응형
'Server > Web' 카테고리의 다른 글
Web - Apache HTTPS 프로토콜 강제 적용하기 (HSTS 설정) (0) | 2024.11.26 |
---|---|
Web - Apache를 이용한 프록시 패스 설정 가이드 (0) | 2024.05.29 |
Web - Apache mod_rewrite 사용 변수 모음집 (0) | 2024.05.18 |
Web - Apache 웹 서버에서 Redirect / Rewrite 방법 (0) | 2024.05.17 |
Web - Apache SSL 인증서 비밀번호 자동입력 / 비밀번호 삭제 (2) | 2023.10.27 |