文档 · 2019年4月15日 0

nginx 报http status 400错误

偶然遇到的一个问题,部署的tomcat项目,使用nginx做反向代理,简单配置了下nginx后,访问时出现http status 400

如图

解决办法:
在配置nginx的配置文件时在location 中加入
proxy_set_header Host $http_host;

解释:
Host的含义是表明请求的主机名,因为nginx作为反向代理使用,而如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败【默认反向代理服务器会向后端真实服务器发送请求,并且请求头中的host字段应为proxy_pass指令设置的服务器】。

 

打赏