一. nginx配置文件结构介绍
二. location语法规则:
用法示例: location [=|~|~*|^~] /uri/ { … } # 讲解如下:
1. = 开头表示精确匹配
2. ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。
nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
3. ~ 开头表示区分大小写的正则匹配
4. ~* 开头表示不区分大小写的正则匹配
5. !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
6. / 通用匹配,任何请求都会匹配到。
注意: 多个location配置的情况下匹配顺序为首先匹配 =,其次匹配^~,其次是按文件中顺序的正则匹配,最后交给 / 通用匹配.
当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
location 匹配的优先级(与location在配置文件中的顺序无关)
= 精确匹配会第一个被处理。如果发现精确匹配,nginx停止搜索其他匹配。
普通字符匹配,正则表达式规则和长的块规则将被优先和查询匹配,也就是说如果该项匹配还需去看有没有正则表达式匹配和更长的匹配。
^~ 则只匹配该规则,nginx停止搜索其他匹配,否则nginx会继续处理其他location指令。
最后匹配理带有"~"和"~*"的指令,如果找到相应的匹配,则nginx停止搜索其他匹配;当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用。