Nginx 역방향 프록시 및 IIS

Nginx 역방향 프록시 및 IIS

저는 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.

관련 정보