location运行顺序
location [=|~|~*|^~] /uri/ { … }
通用匹配符
1、^: 匹配字符串的开始位置;
2、 $:匹配字符串的结束位置;
3、.*: .匹配任意字符,*匹配数量0到正无穷;
4、\ 斜杠用来转义,"\ ." 匹配 " ." 特殊使用方法,记住记性了;
5、(值1|值2|值3|值4):或匹配模式,例:(jpg|gif|png|bmp)匹配jpg或gif或png或bmp
6、i不区分大小写
一.正则表达式匹配,其中:
- ~ 为区分大小写匹配
- ~* 为不区分大小写匹配
- !~ 和!~*分别为区分大小写不匹配及不区分大小写不匹配
模式 | 含义 |
---|---|
location = /uri | = 表示精确匹配,只有完全匹配上才能生效 |
location ^~ /uri | ^~ 开头对URL路径进行前缀匹配,并且在正则之前。 |
location ~ pattern | 开头表示区分大小写的正则匹配 |
location ~* pattern | 开头表示不区分大小写的正则匹配 |
location /uri | 不带任何修饰符,也表示前缀匹配,但是在正则匹配之后 |
location / | 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default |
location__ proxy_pass
在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。
比如:我访问 http://192.168.1.1/proxy/index/
location /proxy/ {
proxy_pass http://127.0.0.1/;
}
############# 代理的url http://127.0.0.1/index
location /proxy/ {
proxy_pass http://127.0.0.1;
}
###########代理到URL:http://127.0.0.1/proxy/index
location __ 静态文件代理 root 和 alias 的区别
如果用root属性: root代理的路径+location路径
如果用alias属性 : alias代理的路径
比如:我浏览器访问地址为192.168.1.1/html/abc.html
location /html/{
root /home/tz/static/;
}
######## 代理到URL /home/tz/static/html/abc.html
location /html/
{
ailas /home/tz/static/;
}
########## 代理到URL /home/tz/static/abc.html