• Nginx正则及 Location匹配!


    1:Nginx location 规则匹配

    ^~          标识符匹配后面跟一个字符串。匹配字符串后将停止对后续的正则表达式进行匹配。

                 如:location ^~ /images/,  在匹配了/images、这个字符串后就停止对后续的匹配

    =          精准匹配,如:location=/,只会匹配urrl为/的请求

    ~          区分大小写的匹配

    ~*         不区分大小写的匹配

    !~          对区分大小写的匹配取非

    !~*         对区分大小写的匹配取非

    /             通用匹配,如果没有其他匹配,任何匹配请求都会被匹配到

     2:正则表达式

    *           重复前面的字符0次或多次

    ?          重复前面的字符0次或1次

     +          重复前面的字符1次或多次

    .           匹配除换行符以外的任意一个字符

    (a | b)    匹配a或b

    ^          以.....开头

    $         以.....结尾

    {n}        重复前面的字符n次

    {n,}       重复前面的字符n次或更多次

    {n,m}     重复前面的字符n次到m次

    *?           重复前面的字符0次或多次 ,但尽可能的少重复

    +?           重复前面的字符1次或更多次 ,但尽可能的少重复

    ??           重复前面的字符0次或1次 ,但尽可能的少重复

    {n,m} ?    重复前面的字符n次或m次 ,但尽可能的少重复

    {n,} ?       重复前面的字符n次以上 ,但尽可能的少重复

    3:正则补充

    w           匹配任意不是字母,数字,下划线,汉子的字符

    s           匹配任意不是空白字符串的字符

    D          匹配任意非数字的字符

    B          匹配不是单词开头或结束的位置

    [a]         匹配a-z小写字母的任意一个

    [^a]        匹配除a以外的任意字符

    4:Nginx location应用规则

    location [=|~|~*|^~|!~|!~*] /url/{...}

    默认值:no

    使用字段:server

    location参数根据URL的不同需求来进行位置配置。可以使用字符串与正则表达式匹配

    location ~*.*.jsp$ {

          proxy_pass http://tomcat_server;

    }

    http://www.a.com/

     

    5:匹配顺序优先级

    6:实际使用建议

    实例:

    要求输入www.a.com/a.html 跳转到www.a.com/file/a.html 

    [root@localhost ~]# vim /etc/init.d/nginx

     location /a.html {

               rewrite (.*) http://www.a.com/file/a.html break;

    }

    测试:

    实例:

    要求输入www.a.com跳转到 www.b.com

    server {

            listen       80;

            server_name  www.a.com;

            charset uft-8;

            access_log  logs/a.com.access.log  main;

            location / {

                root   html;

     index  index.html index.htm;

            }

           if ($host = 'www.a.com') {

         rewrite ^(.*)$ http://www.b.com;

    }

    }

    server {

            listen       80;

            server_name  www.b.com;

            charset uft-8;

            access_log  logs/b.com.access.log  main;

            location / {

                root   html;

                index  index.html index.htm;

            }

     测试:

  • 相关阅读:
    牛客网编程练习(2018校招真题编程题汇总)------字符串价值
    牛客网编程练习(2018校招真题编程题汇总)------排序
    牛客网编程练习(2018校招真题编程题汇总)------回文素数
    牛客网编程练习(2018校招真题编程题汇总)------判断题
    牛客网编程练习(2018校招真题编程题汇总)------删除重复字符
    mysql5.7出现大量too many connections及too many open files错误,且配置最大连接数未生效
    commons-lang3之StringUtils
    commons-lang3 事件机制 <EventListenerSupport>
    springboot文件上传下载简单使用
    Redis5.0.4复制
  • 原文地址:https://www.cnblogs.com/CMX_Shmily/p/11532044.html
Copyright © 2020-2023  润新知