Nginx location(正则)使用

 更新时间:2024年06月21日 08:39:17   作者:Johnny.G  

这篇文章主要介绍了Nginx location(正则)使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

目录
  • 1、nginx location
    • location使用的语法
  • 2、匹配标识说明
    • 3、不同uri及特殊字符组合匹配的顺序说明
      • 4、示例
      • 总结

        1、nginx location

        location 指令的作用是根据用户请求的URI来执行不同的应用。

        location使用的语法

        location [=|~|~*|^~] uri {
          ······
        }

        解释:

        location [=||*|^~] uri {…}
        指令 匹配标识 匹配的网站地址 匹配URI后要执行的配置段

        2、匹配标识说明

        • 1.~ 匹配内容区分大小写
        • 2.~* 匹配内容不区分的小写
        • 3.!~ 取反
        • 4.^~ 但多个匹配同时存在,优先匹配 ^~匹配的内容;不做正则表达式的检查 (优先处理)

        3、不同uri及特殊字符组合匹配的顺序说明

        顺序 不用URI及特殊字符组合匹配 匹配说明
        1 location = / {} 精确匹配 /
        2 location ^~ /image/{ 匹配常规字符串,不做正则表达式匹配检查
        3 location ~* \.(gif|jpg|jpeg)$ { 正则匹配
        4 location /documents/ { 匹配常规字符串,如果有正则,则优先匹配正则
        5 location / { 所有location 都不能匹配后的默认匹配

        4、示例

        测试代码

        #location / {
        #	 root   html;
        #    autoindex on;
        #    index  index.html index.htm;
        #}
        
        location / {
                return 401;
        }
        location = / {
                return 402;
        }
        location /documents/ {
                return 403;
        }
        location ^~ /images/ {
                return 404;
        }
        location ~* \.(gif|jpg|jpeg)$ {
                return 500;
        }

        访问测试

        [root@www conf]# curl -I -w "%{http_code}\n" -o /dev/null -s 192.168.150.12/docuements
        401
        [root@www conf]# curl -I -w "%{http_code}\n" -o /dev/null -s 192.168.150.12
        402
        [root@www conf]# curl -I -w "%{http_code}\n" -o /dev/null -s http://192.168.150.12/documents/
        403
        [root@www conf]# curl -I -w "%{http_code}\n" -o /dev/null -s 192.168.150.12/images/a.jpg
        404
        [root@www conf]# curl -I -w "%{http_code}\n" -o /dev/null -s 192.168.150.12/docuements/abc.jpg
        500

        总结

        以上为个人经验,希望能给大家一个参考,也希望大家多多支持小闻网。

        声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。