로드벨런싱이란 부하 분산 등의 목적으로 여러대의 서버를 띄운 상황에서 어떤 서버로 접근하게 할지 결정하게 하는 작업인데, 이런 작업을 하는 머신을 로드밸런서라고 한다.
로드밸런서의 위치에 따라 L4, L7 로드밸런서로 나뉘고 요청을 분산시키는 기준은 라운드 로빈, 응답시간 기반 등이 있다.
진행하고 있는 개인 프로젝트의 서버를 이중화하여 부하를 분산시켜 더 많은 트레픽을 견뎌보기위해 로드밸런싱을 이용하기로 하였고, 구성이 간편한 Nginx를 사용하기로 했다.
라운드로빈 로드밸런싱 구성
centos7 기준으로
vi /etc/nginx/conf.d/default.conf
으로 파일을 열고 아래와 같이 수정한다.
upstream appServers {
server {server1}:{port};
server {server2}:{port};
}
server {
listen 80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://appServers;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
...
아마 처음엔 upstream에 관한 부분이 없을 텐데 이 부분이 로드벨런싱할 서버들의 주소를 적으면 된다. NCP와 같이 클라우드환경에 구성할 땐 내부IP를 사용하면 된다.
안녕하세요, 네이버 클라우드 플랫폼입니다.
네이버클라우드의 기술 콘텐츠 리워드 프로그램 '이달의 Nclouder(1월)' 도전자로 초대합니다 :)
네이버 클라우드 플랫폼 서비스와 관련된 모든 주제로 2/1(목) 23시까지 신청 가능합니다. (*1월 작성 콘텐츠 한정 신청 가능)
Ncloud 크레딧을 포함한 다양한 리워드가 준비되어 있으니 많은 관심 부탁드립니다!
자세한 내용은 아래 링크에서 확인부탁드립니다.
https://blog.naver.com/n_cloudplatform/223315900468
신청 링크
https://navercloud.typeform.com/to/lF8NUaCF