• 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
  • 相关阅读:
    C 数组初始化
    Linux函数之snprintf()[一]
    出现一下错误
    IOS通过post方式发送图片续
    IOS通过post方式发送图片
    TCP和UDP的区别趣解
    [转]Release mode debugging with VC++
    [转]Math For Programmers
    OS:kernel and shell
    Reminder: 8020 rule
  • 原文地址:https://www.cnblogs.com/pyrene/p/6502304.html
Copyright © 2020-2023  润新知