Reverse-Proxy란?
- 사용자의 요청을 받아서 반대편 네트워크에 있는 웹 서버에 전달하는 역할을 함
- 단순 요청 전달만 함
- 로드밸런서로의 역할을 할 수 있음
Nginx로 Reverse-Proxy 설정
그림1) Nginx로 Reverse-Proxy 환경 구성도 |
- 정적 리버스 프락시 서버 구성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # cat /etc/nginx/sites-available/default
upstream sample_proxy {
server 192.168.56.2:8080;
server 192.168.56.3:8080; } server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { proxy_pass http://sample_proxy; } } |
- upstream영역에 프락시 대상 호스트의 목록 입력
- upstream은 proxy할 타겟 서버를 설정을 위해 사용
- location / 에 대한 모든 요청에 대해서, sample_proxy로 중계한다는 의미
- 로드 밸런싱 메서드
- 라운드로빈(Round-robin)은 기본적인 메서드로 모든 서버에 동등하게 요청
1 2 3 4
upstream sample_proxy { server 192.168.56.2:8080; server 192.168.56.3:8080; }
- least_conn은 연결이 가장 작은 서버로 요청
1 2 3 4 5 6
upstream sample_proxy { least_conn; server 192.168.56.2:8080; server 192.168.56.3:8080; }
-
ip_hash는 클라이언트 IP주소를 기준으로 요청을 분배한다. IP주소가 같다면, 동일한 서버로 요청
1 2 3 4 5 6
upstream sample_proxy { ip_hash; server 192.168.56.2:8080; server 192.168.56.3:8080; }
- hash는 유저가 정의한 key나 변수 혹은 이들의 조합을 해시해서 분산
1 2 3 4 5 6
upstream sample_proxy { hash $request_uri consistent; server 192.168.56.2:8080; server 192.168.56.3:8080; }
- least_time메서드는 NginX Plus에서 지원, 평균 레이턴시와 연결을 기준으로 검사해서 로드가 적은 서버로 요청
1 2 3 4 5 6
upstream sample_proxy { least_time header; server 192.168.56.2:8080; server 192.168.56.3:8080; }
- https://www.joinc.co.kr/w/man/12/proxy
댓글 없음:
댓글 쓰기
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.