场景:在用Nginx做反向代理的时候,加入转发的地址后一直所有API都返回的状态码404,看upstream的时候健康检查没有问题。经过老大的解决后加了一行proxy_set_header Host $proxy_host就成功转发了,具体代码如下:
location ~ ^/api/([0-9]+)(\.[0-9]+)*/application/ {
proxy_pass http://xxx.xxx.xxx;
proxy_set_header Host $proxy_host;
}
百度后才知道,Nginx需要重写请求头,比如说我们需要访问http://aaa.host.com/api/v1/application,通过nginx转发到http://bbb.newhost.com/api/v1/application,如果没有重写的话,包的请求头仍是aaa.host.com,也就出现了404的情况。$proxy_host表示的代理转发的地址。
参考资料:
https://blog.csdn.net/weixin_41585557/article/details/82426784