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被截取了
}

 

posted @ 2022-08-05 18:35  风中的摇坠  阅读(676)  评论(0编辑  收藏  举报