zoukankan      html  css  js  c++  java
  • nginx的location的匹配规则

    在nginx的location下面匹配分为两类,普通匹配和正则匹配

    普通匹配:
    location = URI { configuration } #精确匹配
    location ^~ URI { configuration } #非正则匹配
    location [space] URI { configuration} # # 前缀匹配
    
    
    正则匹配
    location ~ URI { configuration } #大小写敏感匹配
    location ~* URI { configuration } #大小写不敏感匹配
    

      

    nginx 正则表达式的语法:

    nginx 关于正则表达的支持提供了自己的处理方案,设置了自己的语法,这就好比是自己写了一个脚本,来处理正则表达式的结果。比如,我用正则表达式从一个文本中匹配出来一个结果,那么问题来了,我还的对这个结果进行处理,以下的符号都是对正则表达式的处理符号,他们在功能式看似好像和正则沾边,但是不属于正则的范畴。可以理解为处理正则的脚本或函数。

    牛逼学习链接:https://www.cnblogs.com/linjiqin/p/5532119.html 

    ^~

    ^~  :标识符后面跟一个字符串。Nginx将在这个字符串匹配后停止进行正则表达式的匹配,如 location  ^~ /images/,它在匹配了/images/这个字符串后就停止搜索其它正则的location
    非正则匹配,匹配该规则后,停止继续正则匹配。

    空格

    前缀匹配,匹配后,继续更长前缀匹配和正则匹配。

    =

    标识精确查找地址,如 location = / ,只会匹配uri为/的请求
    精确匹配,匹配后停止后续匹配,直接执行该匹配后的configuration.

    ~

    区分大小写的匹配
    区分大小写的正则匹配,按顺序匹配,一旦匹配上即停止后续匹配。

    ~*

    不区分大小写的匹配
    

    !~

    对区分大小写的匹配取非
    

    !^*

    对不区分大小写的匹配取非
    

     后面贴一个nginx配置文件中虚拟机中的server项

        server {
            listen       80;
            server_name  www.amber.com;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {                        # /是正则表达式, 下面的root,index是模块名字
                #root   html;                   #root目录指的是nginx安装目录/usr/local/nginx
                root   /web/www.amber.com;      #也可以在linux中定义一个绝对路径
                index  index.html index.htm;
                #auth_basic "secret";           #nginx的访问控制 
                #auth_basic_user_file  /usr/local/nginx/passwd.db;
            }
    
            location ~ .php$ {                             #区分大小写
                proxy_pass http://192.168.244.11:80;        #proxy_pass是模块名字
            }
    
            location ~ .(gif|jpg|jpeg|bmp|png|swf) {
                root   html;
            }
    
            location ~ /status {
                stub_status on;
                access_log off;
            }
    
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    

      

  • 相关阅读:
    spring基于xml导入配置文件
    spring中bean的继承和依赖关系
    spring整合junit
    spring新注解说明
    Web微信开发工具无法输入中文?官方bug
    vue踩坑 导出new Vue.Store首字母要大写
    关于vue ui组件
    vue组件的生命周期
    Vue的指令以及组件化开发
    webpack的npm扩展使用
  • 原文地址:https://www.cnblogs.com/zhuhaofeng/p/9889918.html
Copyright © 2011-2022 走看看