nginx location

一、location简介

1、  location作用

location指令的作用是可以根据用户请求的URI来执行不同的应用,其实就是根据用户请求的网站的地址URL匹配,匹配成功即进行相关操作

二、

location使用的语法例子

location{=|~|~*|^~}uri{

...

}

location

{=|~|~*|^~}

uri

{....}

指令

匹配标识

匹配的网站网址

匹配URI后要执行的配置段

相当于if判断,即

http://www.cnblog.com/pyrene/

location/pyrene/ {

do someting

}

如果匹配到pyrene就do someting

location/ / {

do someting

}

如果什么都没有匹配到,那么就去找默认do something

~ :用于区分大小写(大小写敏感)的匹配
~*:用于不区分大小写的匹配
~:作用是在常规字符串匹配检查之后,不做正则表达式的检查,即,如果最明确的那个字符串匹配location匹配中有此前缀,那么不做正则表达式的检查
^~:作用是在常规的字符串匹配检查之后,不做正则表达式的检查
= :精确匹配

三、不用URI及特殊字符组合匹配的顺序说明

不用RUI及特殊字符组合匹配顺序

匹配说明

第一名“location = /{”

精确匹配/

第二名“location ^~/images/ {”

匹配常规字符串,不做正则匹配检查

第三名 “location ~*.(gif|jpg|jpeg)$ {”

正则匹配

第四名 “location /documents/{”

匹配常规字符串,如果有正则则优先匹配正则

第五名  “location / {”

所有location都能匹配后的默认匹配

四、配置

1、备份

[root@oldboy extra]# cp www.conf www.conf.pyrene.20170420.bak1

2、配置

[root@oldboy extra]# vim www.conf
    server {
        listen       80;
        server_name  www.cnblogs.co pyrene;
        location / {
            return 401;
            }
        location = / {
            return 402;   
            }
        location /documents/ {
            return 403;
            }
        location ^~ /images/ {
            return 404;
            }
        location ~* .(gif|jpg|jpeg)$ {
            return 500;
            }
}

3、重启

[root@oldboy extra]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.8//conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.8//conf/nginx.conf test is successful
[root@oldboy extra]# /application/nginx/sbin/nginx -s reload

4、操作

[root@oldboy extra]# curl -s -o /dev/null -I -w "%{http_code}
" http://www.cnblogs.co
402
[root@oldboy extra]# curl -s -o /dev/null -I -w "%{http_code}
" http://www.cnblogs.co/index.html
401
[root@oldboy extra]# curl -s -o /dev/null -I -w "%{http_code}
" http://www.cnblogs.co/documents
401
[root@oldboy extra]# curl -s -o /dev/null -I -w "%{http_code}
" http://www.cnblogs.co/images/
404
[root@oldboy extra]# curl -s -o /dev/null -I -w "%{http_code}
" http://www.cnblogs.co/documents/documents.html
403
[root@oldboy extra]# curl -s -o /dev/null -I -w "%{http_code}
" http://www.cnblogs.co/images/1.gif
404
[root@oldboy extra]# curl -s -o /dev/null -I -w "%{http_code}
" http://www.cnblogs.co/ddd/1.gif
500
[root@oldboy extra]# curl -s -o /dev/null -I -w "%{http_code}
" http://www.cnblogs.co/documents/1.gif
500
原文地址:https://www.cnblogs.com/pyrene/p/6502304.html