搜索
简帛阁>技术文章>图文详解Nginx多种匹配方式

图文详解Nginx多种匹配方式

前言

首先建立两个不同的路径的页面做测试

然后打开/usr/local/nginx/conf目录下的ngnix.conf

可以看到

每一个server都可以定义一个访问的转发到的路径

端口转发

 server {
        listen       878;#当访问878端口组时
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   /www/zthwww/w2;#访问878端口时,访问这个路径下的index.html文件
            index  index.html index.htm;
        }
}

重新启动ngnix

 /usr/local/nginx/sbin/nginx -s reload

如果报一下错误,说明是配置文件格式错误,检查配置的server的大括号位置是否匹配,格式是否正确

测试结果

 利用访问地址转发

在进行这步操作时,必须确保DNS解析中,已经添加*前缀解析

然后还是在conf文件中

 server {
        listen       80;
        server_name  zth2.zhangdd1915.top;#修改为任意的XXX.自己域名的格式
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   /www/zthwww/w1;#指定路径
            index  index.html index.htm;
        }
}

(注意端口号和虚拟主机名不能重复,否则会报错)再次重新启动ngnix

测试

同一个server可以同时配置多个主机名

例如

 server {
        listen       80;
        server_name  zth2.zhangdd1915.top zth3.zhangdd1915.top;#主机名1 空格 主机名2的形式
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   /www/zthwww/w1;
            index  index.html index.htm;
        }
}

重启测试

前置匹配

 server {
        listen       80;
        server_name  *.zhangdd1915.top;#只要是以 .zhangdd1915.top结尾都会匹配到此
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   /www/zthwww/w1;
            index  index.html index.htm;
        }
}

注意这个一定要写在最前面,因为先写的先匹配,在之前的DNS解析中已经谢了*,所以会自动匹配到默认的,所以要写在首位

重启测试 

后置匹配

 server {
        listen       878;
        server_name  zhangdd1915.*;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   /www/zthwww/w2;
            index  index.html index.htm;
        }
}

 由于我只有一域名,这里就不做测试了。

正则匹配

 server {
        listen       878;
        server_name  ~^[0-9]+\.zhangdd1915\.top$;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   /www/zthwww/w1;
            index  index.html index.htm;
        }
}

例如前缀是N个数字开头

总结

录前言端口转发利用访问地址转发同一个server可以同时配置多个主机名前置匹配后置匹配正则匹配总结前言首先建立两个不同的路径的页面做测试然后打开/usr/local/nginx/conf目录下的ng
语法规则location[|~|~*|^~]/uri/{…}模式含义location/uri表示精确匹配,只有完全匹配上才能生效location^~/uri^~开头对URL路径进行前缀匹配,并且在正则
目录实现nginx的日志切割面试题讨论:总结实现nginx的日志切割(注:为什么要切割呢?因为当你用户访问量大的时候,可能日志也很大。)《1》:ll/usr/local/nginx/logs/查看日志
利用Nginx的proxy_cache搭建缓存服务器一:编译ngx_cache_purge1、Nginx的Proxy_cache是根据Key值md5哈希存储缓存,支持任意的Key,例如你可以根据”域名
目录背景:Nginx平滑升级方案回退步骤总结背景:由于负载均衡测试服务器中nginx版本过低,存在安全漏洞,查询相关修复漏洞资料,需要采取nginx版本升级形式对漏洞进行修复。Nginx平滑升级方案1
Nginx中的Location指令是NginxHttpCoreModule中重要指令。Location指令,是用来为匹配的URI进行配置,URI即语法中的”/uri/”,可以是字符串或正则表达式。但如
nginx可以在配置文件中对某些内置变量进行判断,从而实现某些功能。例如:防止rewrite、盗链、对静态资源设置缓存以及浏览器限制等等。由于nginx配置中有if指令,但是没有对应else指令,所以
第一种查询方式匹配机制如何找到我们想要的sql语句第一步:先匹配sqlsqssion所在的MybatisUtiljava第二步:去匹配mybatisconfigxml匹配mappers中的所有的xml
1下载nginx[root@localhostmyShells]dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEdockerio/redislatest1e70
首先创建tomcat的文件夹,为了方便docker的配置我这里直接在根目录中创建第一步:创建文件夹:发布文件夹mkdirp/docker/tomcat/webapp8081mkdirp/docker/