У меня есть сайт, который работает как балансировщик нагрузки. Участок А.
У меня есть другие сайты, на которых может быть только один домен. Поэтому, если я просто перенаправляю к ним, он говорит, что имя хоста не найдено.
Итак, если я вручную установил заголовок для чего-то, то появится только этот сайт.
Как я могу установить proxy_set_header Host xxxx
на выбранный адрес сервера. Таким образом, каждый запрос на перенаправление будет иметь разные и соответствующие заголовки хоста.
Это не будет проблемой, если мои другие 2 сайта могут работать на основе URL-адреса, а не заголовка хоста.
worker_processes 1;
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
error_log logs/error.log debug;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
upstream myapp1 {
#server localhost:3333;
server www.asd.com:80;
}
server {
listen 80;
location / {
proxy_set_header Host $upstream_addr; // should become somehow www.asd.com right now this code doesn't work
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://myapp1;
}
}
}
Вам необходимо установить заголовок для входящей переменной хоста, как описано в документации. Вот:
proxy_set_header Host $host;
Ответы на этот вопрос объясняют такое поведение и предлагают обходные пути..
По сути, заголовок фиксируется задолго до выбора восходящего потока. Если вы не можете заставить все восходящие потоки отвечать на один заголовок Host :, вы должны исправить восходящий поток одновременно с установкой заголовка.