nginx 에서 proxy_pass 를 사용해서 도메인 변경하여 전송하기
목적은 다음과 같다. A 서버가 SXX 서버들에 API 데이터를 전송을 하는데, 서버호스팅의 트래픽이 몰리는 문제가 있다. 그래서 트래픽을 분산하고자 한다.가능한 코드를 적게 고쳐서 분산을 하고 싶다.
A -> SXX 로 바로 보내는 것이 아니라, A -> B(proxy) -> SXX 로 보내게 된다.
그래서 트래픽을 A / B 가 나누어서 나오게 된다.
SXX.domain.co.kr 으로 원래 가던 트래픽이 SXX.domain.kr 으로 쏴주면 proxy 를 거쳐 원래주소로 가게된다.(SXX.domain.kr 은 B 서버로 설정해준다)
B서버의 nginx 설정은 다음과 같다.
listen 80;
server_name ~^(?<subserv>.+)\.domain\.kr$ ;
location / {
resolver 168.126.63.1 ;
proxy_pass http://${subserv}.domain.co.kr ;
proxy_set_header Host $subserv.domain.co.kr ;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
위와 같은 방식으로 해준다.
위 진한 부분의 resolver 를 주지 않으면 proxy_pass 의 ${subserv} 부분때문에 다음과 같은 에러가 난다.
2014/10/17 13:38:11 [error] 9577#0: *1 no resolver defined to resolve s13.domain.co.kr, client: 11.22.33.44, server: s13.domain.kr, request: "GET /aaa HTTP/1.1", host: "s13.domain.kr"
2014/10/17 13:40:44 [error] 15697#0: *1 no resolver defined to resolve s13.domain.co.kr, client: 11.22.33.44, server: ~^(?<subserv>.+)\.domain\.kr$, request: "GET /aaa HTTP/1.1", host: "s13.domain.kr"
2014/10/17 13:47:20 [error] 19726#0: *3 no resolver defined to resolve s13.domain.co.kr, client: 11.22.33.44, server: ~^(?<subserv>.+).domain.kr$, request: "GET /aaa HTTP/1.1", host: "s13.domain.kr"
2014/10/17 13:50:41 [error] 26918#0: *1 no resolver defined to resolve domain.co.kr, client: 11.22.33.44, server: ~^(?<subserv>.+)\.domain\.kr$, request: "GET /aaa HTTP/1.1", host: "s13.domain.kr"
2014/10/17 13:52:07 [error] 27502#0: *1 no resolver defined to resolve domain.co.kr, client: 11.22.33.44, server: ~^(?<subserv>.+)\.domain\.kr$, request: "GET /aaa HTTP/1.1", host: "s13.domain.kr"
'알아둘일' 카테고리의 다른 글
괜찮은 VPS호스팅 발견 - vultr.com (20$ 프로모션) (2) | 2015.02.17 |
---|---|
ubuntu 14.04 에서 모니터 끄기 - 단축키 사용 (0) | 2014.12.16 |
윈도우에서 ssh 터널링을 이용해 vnc 접속시 문제 - 우분투 trusty (0) | 2014.08.24 |
우분투에서 x11vnc 사용하기(vnc server) - ubuntu trusty (0) | 2014.08.24 |
btrfs 의 파일시스템이 망가졌나? 복구해보자. (0) | 2014.08.21 |
WRITTEN BY
- 1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.