nginx的location的作用是根据用户请求的URL不同,来执行不同的应用。
针对用户请求的网站URL进行匹配,匹配成功后进行对应的操作。
nginx.conf中server{}指令块的location指令如下
location / {
root html;
index index.html index.htm;
}
location = /50x.html {
root html;
}
【语法】
location 【 = | ~| ~ | ^~ 】 url {
#指定对应的动作
}
#正则表达式解释
匹配符 匹配规则 优先级
= 精确匹配 1
^~ 以某个字符串开头,不做正则 2
~ 正则匹配 3
/blog/ 匹配常规字符串,有正则就优先正则 4
/ 通用匹配,不符合其他location的默认匹配 5
【实际演练】
修改nginx.conf文件如下
【root@bogon extra】# cat
server {
listen 83;
servername ;
#最低级匹配,不符//代码效果参考:http://www.zidongmutanji.com/zsjx/436115.html
合其他locaiton就来这 优先级5location / {
return 401;
}
#优先级最高 优先级1
location = / {
return 402;
}
#以/blog/开头的url,来这里,如符合其他locaiton,则以其他优先 优先级4
location /blog/ {
return 403;
}
#匹配任何以/img/开头的请求,不匹配正则 优先级2
location ^~ /img/ {
return 404;
}
#匹配任何以.gif结尾的请求,支持正则 优先级3
location ~* .(gif|jpg|jpeg)$ {
return 500;
}
}
用浏览器进行测试
优先级1
优先级2
优先级3
优先级4
优先级5