sitelink1 | |
---|---|
sitelink2 | |
extra_vars5 | |
extra_vars6 |
Nginx는 서브 도메인에 따라 요청을 다른 서버로 라우팅할 수 있는 기능을 제공합니다. 이를 위해서는 다음과 같은 설정을 해야 합니다.
- Nginx의
server
블록에location
지시어를 사용하여 서브 도메인을 지정합니다. location
지시어의proxy_pass
지시어를 사용하여 요청을 전달할 서버의 주소와 포트를 지정합니다.
예를 들어, 다음과 같이 설정하면 www.example.com
서브 도메인의 요청은 포트 8080에서 실행 중인 웹 서버로 전달됩니다.
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
이렇게 설정하면 www.example.com
으로 접속하면 포트 8080에서 실행 중인 웹 서버에 요청이 전달됩니다.
다음과 같이 설정하면 api.example.com
서브 도메인의 요청은 포트 8081에서 실행 중인 웹 서버로 전달됩니다.
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://127.0.0.1:8081;
}
}
이렇게 설정하면 api.example.com
으로 접속하면 포트 8081에서 실행 중인 웹 서버에 요청이 전달됩니다.
이 방법을 사용하면 서브 도메인에 따라 내부의 포트만 다르게 실행 중인 웹 서버를 로드 밸런싱할 수 있습니다.
Nginx는 서브 도메인에 따라 요청을 라우팅할 때, 클라이언트 요청의 도메인과 포트를 그대로 유지하면서 요청을 전달합니다. 따라서, 클라이언트는 요청 도메인과 포트를 변경하지 않고도, 원하는 웹 서버에 요청을 보낼 수 있습니다.
예를 들어, 위의 설정을 사용하면, 클라이언트가 www.example.com
으로 접속하면, Nginx는 클라이언트의 요청 도메인과 포트를 그대로 유지하면서 http://127.0.0.1:8080
으로 요청을 전달합니다. 따라서, www.example.com
서브 도메인에서 응답을 받는 웹 서버는 클라이언트의 요청 도메인이 www.example.com
이고, 포트가 80이라고 인식하게 됩니다.
물론, Nginx의 설정에서 proxy_set_header
지시어를 사용하여 클라이언트 요청의 도메인이나 포트를 변경할 수도 있습니다. 그러나, 일반적으로 서브 도메인에 따라 라우팅할 때는 클라이언트 요청의 도메인과 포트를 그대로 유지하는 것이 좋습니다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
6 | [ChatGPT] nginx 에서 jetty 서버로 프록시중 "org.eclipse.jetty.http.BadMessageException: 400: Invalid SNI" 오류 | 황제낙엽 | 2024.11.12 | 167 |
5 |
Nginx: 413 – Request Entity Too Large
![]() | 황제낙엽 | 2024.02.17 | 213 |
4 | nginx 설치, 실행, SSL 설정, 프록시 설정 | 황제낙엽 | 2024.02.04 | 129 |
» | [bard] Nginx로 서브 도메인에 따라 내부의 포트만 다르게 실행중인 웹서버들을 라우팅 | 황제낙엽 | 2024.02.01 | 136 |
2 | [Bing] "Apache"와 "Nginx" 의 차이점 | 황제낙엽 | 2024.01.31 | 246 |
1 | Nginx 에 대하여 | 황제낙엽 | 2024.01.18 | 149 |