Nginx的Location配置语法
location的作用是将访问的链接定位到资源上,进而修改资源的一些属性(如设置图片的缓存)或者是确定图片的位置,可能是本地的资源,也有可能是proxy_pass代理的后端服务。
基础语法
1 | location [=|~|~*|^~] patt { |
- = 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。
- ~ 为区分大小写匹配(可用正则表达式)。
- ~* 为不区分大小写匹配(可用正则表达式)。
- ^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。
- 如果没有上述四种符号,则默认为=
命中规则
- =前缀的指令严格匹配这个查询。如果找到,停止搜索。
- 所有剩下的常规字符串,最长的匹配。如果这个匹配使用^〜前缀,搜索停止。
- 正则表达式,在配置文件中定义的顺序。
- 如果第3条规则产生匹配的话,结果被使用。否则,使用第2条规则的结果。
实战
1 | # 第1段 |
因为后端是用proxy_pass 服务代理的方式,而静态文件/static/文件夹下的文件没必要走后端了,于是就有了第2段配置,同时又需要给css和js文件设置缓存时间,所以也有了第1段的配置。