Обратный прокси-сервер Nginx и IIS

Обратный прокси-сервер Nginx и IIS

Я использую nginx как обратный прокси для сайта, работающего на IIS 7.5. Сайт привязан к 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(машину Linux с nginx) на sub-1.foo.bar(машину Windows с IIS и моим веб-сайтом). Однако происходит следующее:

  • когда я захожу на sub.foo.bar, я получаю страницу 404
  • когда я напрямую обращаюсь к sub-1.foo.bar, мой веб-сайт нормально обслуживается IIS
  • nginx, похоже, нормально пересылает запросы на машину с Windows
  • Я не вижу входящих запросов из журналов IIS при доступе к sub.foo.bar
  • когда я добавляю привязку для sub.foo.bar на IIS, веб-сайт нормально проксируется с помощью nginx

Буду признателен за любые идеи о том, что может быть не так с моей настройкой. Спасибо!

решение1

Попробуйте вручную добавить proxy_set_header Host "sub-1.foo.bar"

решение2

  • когда я добавляю привязку для sub.foo.bar на IIS, веб-сайт нормально проксируется с помощью nginx

IIS должен знать, что он должен отвечать на запросы для имени sub.foo.bar. В противном случае он направляет запросы на веб-сайт по умолчанию. Вы можете исправить это, либо создав привязку, либо создав/отредактировав свой веб-сайт для ответа на sub.foo.bar.

Связанный контент