다음은 도메인에 따라 요청을 특정 포트로 전달하는 예시 설정입니다.
- NGINX 설치 및 설정 파일 위치
- 기본적으로 NGINX 설정 파일은
/etc/nginx/nginx.conf
또는/etc/nginx/conf.d/default.conf
에 위치해 있습니다. - 설정을 수정하기 전에 기존 설정 파일을 백업하는 것이 좋습니다.
- 기본적으로 NGINX 설정 파일은
- NGINX 설정 파일 수정다음 예제에서는
example1.com
도메인으로 들어오는 요청을 포트8080
으로,example2.com
도메인으로 들어오는 요청을 포트9443
으로 전달하는 설정을 보여줍니다.
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# Server block for example1.com
server {
listen 80;
server_name example1.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# Server block for example2.com
server {
listen 80;
server_name example2.com;
location / {
proxy_pass http://localhost:9443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# Optional HTTPS server block for example1.com
server {
listen 443 ssl;
server_name example1.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# Optional HTTPS server block for example2.com
server {
listen 443 ssl;
server_name example2.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:9443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
- 설명
listen 80;
과listen 443 ssl;
은 각각 HTTP와 HTTPS 요청을 수신하는 설정입니다.server_name
은 해당 서버 블록이 처리할 도메인을 지정합니다.location /
블록 내의proxy_pass
디렉티브는 요청을 지정된 포트로 전달합니다.proxy_set_header
디렉티브는 원본 요청의 헤더를 전달하는 데 사용됩니다.
- NGINX 설정 테스트 및 재시작
- 설정 파일을 저장한 후, 다음 명령어를 사용하여 설정 파일에 오류가 없는지 확인합니다.
sudo nginx -t
- 설정 파일에 오류가 없다면, NGINX를 재시작하여 변경 사항을 적용합니다.
sudo systemctl restart nginx
- 설정 파일을 저장한 후, 다음 명령어를 사용하여 설정 파일에 오류가 없는지 확인합니다.
이 설정을 통해 특정 도메인에 들어오는 요청을 지정된 포트로 프록시할 수 있습니다. 필요한 도메인과 포트 조합에 따라 서버 블록을 추가로 구성하면 됩니다.
#NGINX #PROXY_PASS #프록시 #프록시패스
