[Nginx] 호스트 기반 라우팅 Host based routing
요청 호스트의 헤더 값에 따라 트래픽을 분기하는 방법
호스트 기반 라우팅
호스트 기반 라우팅
개념
- 요청의 Host 헤더 값을 기준으로 트래픽을 분기하는 방식
- 예를 들어, API에 들어오는 요청이 abc.com 을 통해 들어왔을 때와, XXX.XXX.XXX.XXX IP를 통해 들어왔을 때의 전달 경로를 다르게 설정해주는 기법이다.
- Nginx, Apache 등에서 공통적으로 사용되는 방식이다.

아래와 같이 표현할 수도 있다.
- 도메인 기반 리버스 프록시
- 클라이언트 Host 헤더 기준의 라우팅
- 서로 다른 가상 호스트로 요청을 분기
언제 쓰는데?
- 하나의 Nginx 인스턴스로 여러 도메인/서비스를 처리해야 할 때
- 테스트 / 운영 서버에 대한 처리 분기를 나눠야 할 때
어떻게 쓰는데?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# nginx.conf
http {
# resolver를 하는 이유는.. docker network 를 명확하게 잘 찾게 하기 위함
resolver 127.0.0.11 valid=30s;
# host 값에 따라 프록시 대상 백엔드 서버를 지정
map $host $backend_upstream {
default 127.0.0.1:8000; # 기본 백엔드
abc.com 127.0.0.1:8001; # Host가 abc.com 일 경우
localhost 127.0.0.1:8002; # Host가 localhost 일 경우
}
server {
listen 80;
location / {
proxy_pass http://$backend_upstream; # map 설정에 따른 프로시
...
}
}
}
// reading compass
이 글과 이어지는 경로
시리즈, 카테고리, 태그 겹침, 최신도를 점수화해 가까운 글일수록 중심에 배치합니다.
댓글 남기기