精确匹配 = 输入的url名必须相同
优先前缀 ^~ 匹配以某个字符串开头的url路径【比正则优先】
正则匹配 ~ 匹配区分大小写的url字符正则表达式 【比普通前缀优先】
正则匹配 ~* 匹配不区分字符串大小写的url正则表达式【比普通前缀优先】
普通前缀 /前缀 表示匹配些字符开头的url路径 【和优先前缀都是前缀匹配,更精确的优先】
通用匹配 / 任何的请求都会被匹配到,但最不优先
/ 是匹配所有但是它的精确度最不精确;所以比他精确的一旦匹配上就会忽略它;
location /app2005 {
proxy_pass http://192.168.199.109:8080;
}
指的是凡是路径以 /app2005开头的都会匹配到下面这个路径;也就是 /app2005/aaa/bbb 就会变成 http://192.168.199.109:8080/app2005/aaa/bbb ;
/ 后面的也全都变过去;也就是下面的 /app2005 会拼接到8080后面;
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
除了前缀还有正则匹配精确度更高;正则匹配就是前面加上一个 ~ ,后面写正则表达式,代表正则匹配;
location ~ /app\d* {
proxy_pass http://192.168.199.109:8080;
}
说明:
app2005 肯定比app更精确;
~ :正则;区分路径里面得的大小写;
~*:也是正则;不区分大小写;
如何比正则更优先?
^~ 优先前缀,这个优先前缀只是比正则优先,不会比普通前缀优先;
# 容器中有目录 /usr/local/web 其中有文件 index.html、a.gif、b.png、c.jpg
# http://ip:port/index.html 访问到 /usr/local/web/index.html
location = /index.html {
root /usr/local/web;
}
。。。。。。。。。。。。。。。。 。。。。。。。
嘻哈的简写笔记——Nginx
。。。。。。。。。。。。。。。。。。。。。。。