
Я использую 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
.