2021-4-29 Nginx 踩坑小课堂之Location路径映射及其优先级

  1. location 修饰符类型

「=」 修饰符:要求路径完全匹配,,也就是精准匹配

location / {
// 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求
}
server {
    server_name website.com;
    location = /abcd {
        #精准匹配xxx/abcd或者xxx/abcd?param1
    […]
    }
}

http://website.com/abcd匹配
http://website.com/ABCD可能会匹配 ,也可以不匹配,取决于操作系统的文件系统是否大小写敏感(case-sensitive)。ps: Mac 默认是大小写不敏感的,git 使用会有大坑。
http://website.com/abcd?param1&param2匹配,忽略 querystring
http://website.com/abcd/不匹配,带有结尾的/
http://website.com/abcde不匹配

  1. location优先级
    //优先级从高到低依次为1>2>3>4>5>6(序号越小优先级越高)

(1) location = # 精准匹配
(2) location ^~ # 带参前缀匹配
(3) location ~ # 正则匹配(区分大小写)
(4) location ~* # 正则匹配(不区分大小写)
(5) location /a # 普通前缀匹配,优先级低于带参数前缀匹配。
(6) location / # 任何没有匹配成功的,都会匹配这里处理

  1. location 的两种表示形式
    一种是使用前缀字符,一种是使用正则。
    (1)前缀字符
    (2)正则
    location ~ 和location ~*

  2. root 和try_files 和proxy_pass

5.客户端请求正文的最大允许大小
语法:client_max_body_size size;默认值:client_max_body_size 1m;上下文:http,服务器,位置设置客户端请求正文的最大允许大小,在“ Content-Length”请求标头字段中指定。如果请求中的大小超过配置的值,则会向客户端返回413(请求实体太大)错误。请注意,浏览器无法正确显示此错误。将size设置为0将禁用检查客户端请求主体大小。尝试根据请求的大小扩展它。

上一篇:第81节:Java中的数组


下一篇:项目实战 -MapReduce将Hbase写入Mysql(三)