
내 설정은 다음과 같습니다. 공개적으로 공개되는 서버 1과 서버 1에만 공개되는 서버 2가 있습니다.
요청은 서버 1로 전달된 다음 서버 2로 프록시되어 로컬에서 실행되는 백엔드 앱으로 추가로 프록시됩니다. 실제로 일어나는 일은 요청이 subdomain1.domain.com 대신 다른/기본 서버 블록으로 이동한다는 것입니다.
서버 1에서 subdomain1.domain.com을 컬링하면 요청이 올바르게 라우팅됩니다. 내가 무엇을 놓치고 있나요?
나는 또한 추가를 시도했지만 proxy_set_header Host $host;
아무것도 proxy_redirect off;
작동하지 않았습니다.
서버 1 구성:
upstream my-api {
server subdomain1.domain.com:80;
}
server {
listen 443 ssl http2;
server_name subdomain2.subdomain1.domain.com;
ssl_certificate /path/file.cert;
ssl_certificate_key /path/file.key;
access_log /var/log/nginx/my-api.access.log;
error_log /var/log/nginx/my-api.error.log;
location / {
proxy_pass http://my-api;
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 {
listen 80;
server_name subdomain2.subdomain1.domain.com;
return 301 https://$host$request_uri;
}
서버 2 구성:
server {
listen 80;
server_name subdomain1.domain.com;
access_log /var/log/nginx/api.en.access.log;
error_log /var/log/nginx/api.en.error.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:8001;
}
}
답변1
마침내 알아 냈습니다.
Server 1 구성에 다음 줄을 추가했습니다.proxy_set_header Host subdomain1.domain.com;
그런 다음에야 올바른 서버 블록으로 끝납니다. 다른 사람에게도 도움이 되길 바랍니다.