목적
하나의 서버에서 여러 서비스를 동작시킬 때, 각 서비스는 다른 포트를 사용합니다. 이때, 특정 도메인을 통해 서비스에 접근하려면 Nginx의 proxy_pass 설정을 사용하여 도메인과 포트를 연결해야 합니다.
예시
한 서버에서 두 개의 서비스인 zabbix와 grafana를 운영한다고 가정해봅시다.
- zabbix → 80 port
- grafana → 3000 port
이렇게 각각 다른 포트에서 동작 중인 서비스에 도메인을 연결해주기 위한 Nginx 설정은 아래와 같습니다:
Grafana에 대한 설정 (/etc/nginx/conf.d/grafana.conf)
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name grafana.jeff.com;
access_log off;
location / {
proxy_pass <http://127.0.0.1:3000>;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
Zabbix에 대한 설정 (/etc/nginx/conf.d/zabbix.conf)
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name zabbix.jeff.com;
access_log off;
location / {
proxy_pass <http://127.0.0.1:80>;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
설정 후 확인
Nginx 설정에 문제가 없는지 문법 검사를 합니다.
nginx -t
문제가 없다면, Nginx를 리로드하여 변경한 설정을 적용합니다.
nginx -s reload
서버의 IP 주소를 /etc/hosts 파일에 등록하거나 DNS에 등록합니다.
브라우저에서 zabbix.jeff.com와 grafana.jeff.com 주소를 입력하면 각각 서버IP:80과 서버IP:3000으로 연결되는 것을 확인할 수 있습니다.
'WEB > Nginx' 카테고리의 다른 글
[Nginx]X-Forwarded-For(XFF) 설정 (0) | 2022.07.02 |
---|---|
[Nginx]Customizing 301 pages to hide nginx information (0) | 2022.05.05 |
[Nginx]응답 헤더에서 Nginx 정보 제거 - remove response header server (0) | 2022.05.05 |
[Nginx]웹 크롤링 차단(Block bad bots) - http_user_agent (0) | 2022.05.05 |
[Nginx]파일업로드 크기 제한 - client_max_body_size (0) | 2022.05.05 |