nginx location配置

nginx location配置

location在nginx中起着重要作用,对nginx接收到的请求字符串进行处理,如地址定向、数据缓存、应答控制、代理转发等

location语法

location [=|~|~*|^~] uri {
...
}

[]部分是匹配类型,可以没有,其中各项含义:

(1)= 精准匹配,请求字符串必须和uri完全相同时匹配成功

(2)~ 区分大小写的正则匹配

(3)~* 不区分大小写的正则匹配

(4)^~ 注意这个不是正则匹配,表示uri以普通字符串开头,

(5)空 表示uri以普通字符串开头,和上条意义相同,只是匹配顺序有区别

匹配类型

(1)普通匹配(没有[]部分,或者指定 ^~)

(2)精准匹配(=)

(3)正则匹配(~或者~*)

例如:

location = / {
#精确匹配 / ,主机名后面不能带任何字符串
... 
}

location / {
#普通匹配,因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求
... 
}

location ~* \.(gif|jpg|jpeg)$ {
#正则匹配,此条规则匹配uri是否以 .gif 或 .jpg 或 .jpeg 结尾,不区分大小写
...
}

多个location的优先级

(1)找精准匹配,找到就停止继续匹配,执行此location

(2)验证各条普通匹配规则,是否有 ^~ 开头匹配成功的,有,停止继续匹配,执行此location,否,记下匹配度最高的那条

(3)按顺序验证各条正则匹配规则,有匹配的,停止继续匹配,执行此location,否则执行普通匹配规则中匹配度最高的那条

时间: 2024-10-10 21:39:21

nginx location配置的相关文章

Nginx Location配置总结

http://blog.sina.com.cn/s/blog_97688f8e0100zws5.html 语法规则: location [=|~|~*|^~] /uri/ { … }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格).~ 开头表示区分大小写的正则匹配~*  开头表示不区分大小写的正则匹配!~和!~*分别为区分大小写

Nginx Location配置总结及基础最佳实践

参考来源: http://blog.zol.com.cn/1067/article_1066186.html,http://flandycheng.blog.51cto.com/855176/280121 语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空

nginx location配置(URL)

语法规则: location [=|~|~*|^~] /uri/ { … }= 表示精确匹配,这个优先级也是最高的^~ 表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格).~  表示区分大小写的正则匹配~* 表示不区分大小写的正则匹配(和上面的唯一区别就是大小写)!~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则/ 通用匹配,任何请求都会匹配到,默认

nginx location配置(转)

语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格). ~ 开头表示区分大小写的正则匹配 ~* 开头表示不区分大小写的正则匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则 / 通用匹配,任何请求都会匹配到. 多个location配置的

nginx location 配置详解

指令作用 匹配指定的请求uri(请求uri不包含查询字符串,如http://localhost:8080/test?id=10,请求uri是/test) 语法形式 location [ = | ~ | ~* | ^~ | @] /uri/ { configuration } 匹配模式及顺序 匹配字符串分为两种:普通字符串(literal string)和正则表达式(regular expression),其中 ~ 和 ~* 用于正则表达式, 其他前缀和无任何前缀都用于普通字符串. 1.先匹配普通

Nginx location 配置踩坑过程分享

这是五个小时与一个字符的战斗 是的,作为一个程序员,你往往发现,有的时候你花费了数小时,数天,甚至数星期来查找问题,但最终可能只花费了数秒,改动了数行,甚至几个字符就解决了问题.这次给大家分享一个困扰了我很久,我花了五个小时才查找出问题原因,最终只添加了一个字符解决了的问题. 问题描述 我们的业务系统比较复杂,但最终提供给用户的访问接口比较单一,都是使用 Nginx 来做一个代理转发,而这个代理转发,往往需要匹配很多种不同类型的 URL 转给不同的服务.这就使得我们的 Nginx 配置文件变得很

Nginx location 配置踩坑过程

原文链接:https://blog.coding.net/blog/tips-in-configuring-Nginx-location 是的,作为一个程序员,你往往发现,有的时候你花费了数小时,数天,甚至数星期来查找问题,但最终可能只花费了数秒,改动了数行,甚至几个字符就解决了问题.这次给大家分享一个困扰了我很久,我花了五个小时才查找出问题原因,最终只添加了一个字符解决了的问题. 问题描述 我们的业务系统比较复杂,但最终提供给用户的访问接口比较单一,都是使用 Nginx 来做一个代理转发,而这

nginx: location 配置

语法规则: location [=|~|~*|^~] /uri/ { ... } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url 路径即可.nginx不对url做编码,因此请求为 /static/20%/aa,可以被规则 ^~ /static/ /aa 匹配到(注意是空格). 原文地址:https://www.cnblogs.com/gaollard/p/10203574.html

nginx的location配置详解

语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格). ~ 开头表示区分大小写的正则匹配 ~*  开头表示不区分大小写的正则匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则 / 通用匹配,任何请求都会匹配到. 多个location配置