nginx配置转发地址漏了斜杆 “/”
配置文件
location /openapi/search/ {
proxy_pass http://search_server_pool/search;
}
#后端搜索api
upstream search_server_pool{
server 127.0.0.1:40100 weight=10;
}
如下,按照配置文件转发后,浏览器拼接的地址是完整的
http://ucenter.xuecheng.com/openapi/search/course/getall/4028e58161bd3b380161bd3bcd2f0000
但是这个url浏览器一直报404错误,核对了无数遍url,并且手动转成下面这样就可以请求返回数据
127.0.0.1:40100/search/course/getall/4028e58161bd3b380161bd3bcd2f0000
从上可以确定目标url没有问题,那肯定是nginx代理转发有问题了,仔仔细细核对转发配置,发现转发的url最后漏了斜杆"/",修改后成功请求
location /openapi/search/ {
proxy_pass http://search_server_pool/search/;
}
这个问题很低级,但是浏览器拼接的url是正常的,造成了一种假象,不过仔细思考问题也很好排查