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

댓글 없음:
댓글 쓰기
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.