Nginx loction精确匹配 + proxy_pass 404的问题
访问Url:http://192.168.247.20/linux
错误示例1
location = /linux { # 注意,这里的linux后没有加斜杆 proxy_pass https://www.baidu.com/; }
原因:浏览器会自动加上斜杆(http://192.168.247.20/linux/ ),/linux/ 和 /linux 匹配不上,所以不会进行代理
错误示例2
location = /linux/ { proxy_pass https://www.baidu.com; # 注意这里url后没有带斜杆 }
原因:最后访问的url没带杠,会将location的url带在后面,实际访问路径为:https://www.baidu.com/linux/,会有错误提示:The requested URL /linux/ was not found on this server.
正确示例
location = /linux/ { proxy_pass https://www.baidu.com/; # 这里尾巴带斜杆,不会加上/linux,最终访问https://www.baidu.com/
}
附
location = /linux/ {
proxy_pass https://www.baidu.com/; # 这里如果访问http://192.168.247.20/linux/xxx,那么最终会访问https://www.baidu.com/xxx,相当于/linux被截取了
}