Компания, в которой я работаю, использует Nginx для обратного прокси и балансировщика нагрузки, поэтому я просто добавляю еще один блок в файл nginx .conf, как показано ниже для новой службы, при запросе сервера Nginx с curl http://10.11.12.15:8080/api
Nginx возвращает 400 Bad Request, однако после изменения этой конфигурации proxy_set_header Host $http_host:$proxy_port;
на proxy_set_header Host $host:$server_port;
решается проблема Bad Request. Но я не понимаю сути.
Я уже прочитал эти ответы В чем разница между $ host и $ http_host в Nginx и Практическая разница между $ http_host и $ host .
Но однозначного ответа на эту ситуацию нет. В чем разница между этими заголовками?
proxy_set_header Host $http_host:$proxy_port;
proxy_set_header Host $host:$server_port;
Использовал этот блок;
upstream web-service {
server 10.11.12.13:8080;
server 10.11.12.14:8080 backup;
}
server {
listen 8080;
server_name myHost 10.11.12.15;
location / {
proxy_pass http://web-service;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host:$proxy_port; # Throw HTTP 400 Bad Request
# proxy_set_header Host $host:$server_port; # Working solution
}
}