
저는 IIS 7.5에서 실행되는 웹사이트의 역방향 프록시로 nginx를 사용하고 있습니다. 웹사이트는 에 바인딩되어 있습니다 sub-1.foo.bar
. Nginx 구성은 다음과 같습니다.
server {
listen 80;
server_name sub.foo.bar;
location / {
proxy_pass http://sub-1.foo.bar;
proxy_set_header Host $host;
proxy_set_header X-Accel-Expires 0;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
내가 하고 싶은 것은 sub.foo.bar
(nginx가 있는 Linux 시스템) 에 오는 요청을 sub-1.foo.bar
(IIS가 있는 Windows 시스템과 내 웹 사이트)로 전달하는 것입니다. 그러나 일어나는 일은
- sub.foo.bar에 액세스하면 404 페이지가 나타납니다.
- sub-1.foo.bar에 직접 액세스하면 내 웹사이트가 IIS에서 정상적으로 제공됩니다.
- nginx는 정상적으로 요청을 Windows 시스템으로 전달하는 것 같습니다.
- sub.foo.bar에 액세스할 때 IIS 로그에서 들어오는 요청을 볼 수 없습니다.
- IIS에서 sub.foo.bar에 대한 바인딩을 추가하면 웹사이트가 nginx로 정상적으로 프록시됩니다.
내 설정에 어떤 문제가 있을 수 있는지에 대한 아이디어를 주시면 감사하겠습니다. 감사해요!
답변1
Proxy_set_header 호스트 "sub-1.foo.bar"를 수동으로 추가해 보십시오.
답변2
- IIS에서 sub.foo.bar에 대한 바인딩을 추가하면 웹사이트가 nginx로 정상적으로 프록시됩니다.
IIS는 이름에 대한 요청에 응답해야 한다는 것을 인식해야 합니다 sub.foo.bar
. 그렇지 않으면 요청을 기본 웹 사이트로 라우팅합니다. 바인딩을 생성하거나 에 대한 답변을 위한 웹사이트를 생성/편집하여 이 문제를 해결할 수 있습니다 sub.foo.bar
.