이전 개발 사이트에 있던 백업본 입니다.개발 사이트에 구현 했었던 Nginx Load Balacing 에 대해서 기록하려 합니다
Nginx 관련 설명은 이전에 작성 했었던 포스팅 글 참조
https://www.owl-dev.me/blog/28
라즈베리파이 4대를 가지고 Nginx Load Balancing 을 구축해서 운영 했었습니다.
당시에 로드밸런싱을 구현했었던 방법을 기록하려 합니다 .
Web Server | DB Server |
로드 밸런싱 환경을 구축할때 DB 서버와 Web 서버 구역을 분할해서 구성했었습니다.
DB 서버에 Main Nginx 를 구축해서 각 Web 서버로 분할 해주도록 구성했었고, 각 5000 ,5001, 5002, 5003 포트에 대해서
접속한 각 웹 서버에 또 한번 Nginx 를 통해서 5000 포트로 Redirect 해주도록 구성했습니다.
|
- Web Server (211,xxx,xxx)
- Path: /etc/nginx/sites-available/default
- 5002 포트로 받아온 요청(request) 을 5000 포트로 (response) 프록시 설정. - access_log, error_log 설정을 통한 웹 서버 로그 확인. - 4개의 Web Server 모두 동일 구성 |
- Path: /etc/nginx/nginx.conf
- http context 속 upstream directives 를 만들어서 로드 밸런싱 그룹을 설정해 준다. - Nginx 에서 제공하는 Load Balancing 기법 3가지 - round-robin : 라운드 로빈 방식으로 동등하게 접속(기본) - least-conneted: 가장 적게 연결된 서버 중심으로 접속 - ip-hash: 고정 IP 방식으로 동일 서버에만 접속 - Load Balancing 기법 생략 시, round-robin 적용 - Load Balancing 그룹 명 'servergroup1' |
- Path: /etc/nginx/sites-available/default
- server context 2개를 생성 - 상단 server 는 80port -> 443 port 로 Redirect 설정 - 하단 server 는 proxy_pass 로 nginx.conf 파일에 load balancing 그룹명 'servergroup1' 매핑 |