nginx用正则表达式实现泛域名自动匹配目录的方法
nginx用正则表达式实现泛域名自动匹配目录
用nginx可以实现虚拟主机的功能,可以绑定多个网址。
通常主域名都是写死在配置里面的,所以要增加匹配时,需要手动添加。
基本写法
最基本的写法是server{ listen 80; server_name www.a.com; root /html/a; … } server{ listen 80; server_name www.b.com; root /html/b; … }
正则式写法
域名绑定后,自动匹配到相应的目录中,不需要一个一个域名去写配置。
匹配目录为:html/域名/二级域名,例如www.baidu.com会匹配到baidu.com/www目录下
server { listen 80; # $subdomain 将匹配到二级域名级以上 # $domain 将匹配到一级域名 # $tld 将匹配到根节点名 server_name ~^((?<subdomain>.*)\.)?(?<domain>[^.]+)\.(?<tld>[a-zA-Z]+)$; #如果没有$subdomain,则跳转到www if ($subdomain = "") { # set $subdomain "_"; set $subdomain "www"; return 301 $scheme://www.$domain.$tld$request_uri; } root /usr/share/nginx/html/${domain}.${tld}/${subdomain}; }
其他
nginx 的匹配顺序,搜索一下有很多文章,我就不详细说了。
因为正则表达式的匹配优先级最低,只有当其他都匹配不到时才会进行正则表达式的匹配,所以不用担心影响其他的精确匹配。
一般人不会有那么多的域名要匹配,相反,是要屏蔽掉一些恶意的域名指向。
但是测试的时候,为了不影响正在运行的网页,可以在hosts中添中一条ip 域名记录,用不存在的域名来测试,这时候就比较有用了。
总结
到此这篇关于nginx用正则表达式实现泛域名自动匹配目录的文章就介绍到这了,更多相关nginx正则表达式泛域名匹配目录内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Nginx if语句加正则表达式实现字符串截断
在给大家讲述这个问题之前,先给大家看一段nginx配置. 我们用到了 set-misc-nginx-module 复制代码 代码如下: location /test/ { default_type text/html; set_md5 $hash "secret"$remote_addr; echo $hash; } 这样输出来的内容,可能是下面这样的 复制代码 代码如下: 202cb962ac59075b964b07152d234b70 但如果我们要截取某几位
-
Nginx的正则表达式详解
Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日. 其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMA
-
Nginx中泛域名配置的实例教程
原本准备换Linux服务器,所以数据迁移暂时需要使用静态页面临时代替一下,之前的article.asp?id=xxx都要重定向到静态文件 article/xxx.htm,nginx的rewrite比apache的强大很多,还可以用if语句,很容易理解,下面看看Nginx是如何进行Rewrite的! 提示:以下rewrite指令写在 nginx.conf 配置的 server { - } 中 最常见的: 静态地址重定向到带参数的动态地址 rewrite "^(.*)/service/(.*)/.h
-
使用Nginx实现根据 IP 匹配指定 URL
业务需求 业务和开发同事需要我这边做一条规则,所有访问 ip 为非上海.广州 office 外网 ip,url 为http://test.com/fuck/index.html 的请求都跳转到 http://test.com/index.html .然后所有在上海和广州 office 的外网 IP 访问 http://test.com/fuck/index.html 依然还是 http://test.com/fuck/index.html.这样就可以在生产上做隔离,不影响其他用户的服务. 注:因
-
nginx location 配置 正则表达式实例详解
1.location 介绍 •location 是在 server 块中配置,用来通过匹配接收的uri来实现分类处理不同的请求,如反向代理,取静态文件等 •location 在 server 块中可以有多个,且是有顺序的,会被第一个匹配的 location 处理 •localtion 匹配功能只做匹配分发用,并不会改变uri的内容或其他作用,我一开始理解的时候就混淆了一些概念,建议多做测试看实际效果 2.localtion 匹配规则 •location [ = | ~ | ~* | ^~ ] u
-
nginx泛域名解析配置教程
最近一个项目需要承载高并发请求,所以在后端语言上选择了NodeJs,但是nodejs有时候读取不到请求的主机名,所以想到使用nginx+nodejs的方式进行处理. Nginx 配置 代码如下 upstream io_nodes { server 127.0.0.1:8081; } server { listen 80; listen [::]:80; root /var/www/html; server_name ~^(?<subdomain>.+).example.com; locatio
-
nginx用正则表达式实现泛域名自动匹配目录的方法
nginx用正则表达式实现泛域名自动匹配目录 用nginx可以实现虚拟主机的功能,可以绑定多个网址. 通常主域名都是写死在配置里面的,所以要增加匹配时,需要手动添加. 基本写法 最基本的写法是server{ listen 80; server_name www.a.com; root /html/a; - } server{ listen 80; server_name www.b.com; root /html/b; - } 正则式写法 域名绑定后,自动匹配到相应的目录中,不需要一个一个域名去
-
详解Tomcat服务器绑定多域名和虚拟目录的方法
tomcat采用默认安装,要想tamcat直接绑定多个域名,这里我们需要修改配置文件:C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\server.xml server.xml 的修改方式如下: (一)多域名绑定 1.如果你要绑定网站,首先是要把tomcat的默认访问端口8080,修改成80 原始: <Connector port="8080" maxHttpHeaderSize="8192&quo
-
Nginx服务器中设置禁止访问文件或目录的方法
在nginx要禁止某个或一类资源,只需要增加一个location,然后在其中使用deny all即可. 禁止访问扩展名为bat的文件,配置如下: location ~* /.bat { deny all; } 禁止访问configs目录,以及其下所有子目录或文件,配置如下: location ^~ /configs/ { deny all; } 注意上述configs后面的斜杠不能少,否则所有以configs开头的目录或文件都将禁止访问.
-
nginx将泛解析的匹配域名绑定到子目录配置方法
网站的目录结构为: # tree /home/wwwroot/exehack.net /home/wwwroot/exehack.net ├── bbs │ └── index.html └── www └── index.html 2 directories, 2 files /home/wwwroot/exehack.net为nginx的安装目录下默认的存放源代码的路径. bbs为论坛程序源代码路径:www为主页程序源代码路径:把相应程序放入上面的路径通过:http://www.
-
探究Python的Tornado框架对子域名和泛域名的支持
其实Tornado对子域名和泛域名(除了特别说明外,以下子域名和泛域名均简称为泛域名)的支持并不是什么新鲜事,两年多前我用Tornado写的开源网站 http://poweredsites.org 就有了对泛域名的支持,但是Tornado的官方文档里并没有明确对此功能进行说明,虽然源代码里是有注释的,终是有点隐晦,这不,近日mywaiting同学就遇到了这个问题,我应邀特撰此博文,分享下我对此的一点点经验. 通常,用Tornado添加url映射路由表是直接传handlers给Applicatio
-
Nginx location匹配规则的方法示例
1.语法 location [=|~|~*|^~|@] /uri/ { ... } 2.说明 从上面的语法出发,可以了解到 location 可以区分为三个部分,接下来一个一个的研究一下. 1) [=|~|~*|^~|@] = : 表示精确匹配后面的url ~ : 表示正则匹配,但是区分大小写 ~* : 正则匹配,不区分大小写 ^~ : 表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录 @ : "@" 定义一个命名的 location,使用在内部定向时,
-
JavaScript实现邮箱地址自动匹配功能代码
自动匹配技术:简单的来说就是"根据用户输入的信息来提示一些相似项供用户选择".具有很广泛的应用,比如我们最常用的百度,当输入一些搜索内容后会自动匹配很多相关信息:再比如我们最常用的输入法,都是使用这种技术,当然这些都比较难了.下面这个例子是比较简单的我们常用邮箱的匹配.代码如下: 1.css代码 #match_email { margin-left:48px; overflow:auto; display:none; width:200px; border:1px solid #aaa
-
JAVA新手小白学正则表达式、包装类、自动装箱/自动拆箱以及BigDecimal
目录 1正则表达式Regex 1.1概述 1.2常见语法 1.3String提供了支持正则表达式的方法 1.4练习:测试输入身份证号 2包装类 2.1与基本类型的对应关系 2.2Number 2.3Integer创建对象 2.4练习:Number之Integer 2.5Double 2.5练习:Number之Double 3自动装箱和自动拆箱 3.1概述 3.2练习:自动装箱与自动拆箱测试 4BigDecimal 4.1创建对象 4.2常用方法 4.3练习:测试常用方法 5拓展 总结 1 正则表
-
正则表达式实现字符的模糊匹配功能示例
本文实例讲述了正则表达式实现字符的模糊匹配功能.分享给大家供大家参考,具体如下: package com.cn.util; import java.util.regex.Pattern; /** * 正则表达式 工具类 * * @author lifangyu */ public class RegexUtil { /* * IP地址的匹配标达式 ( // \\d{1,3}) // :\d // 0~9数字,{1,3} // 至少一位,最多三位) */ private static String
随机推荐
- php的list()的一步操作给一组变量进行赋值的使用
- linux使用update-alternatives切换java版本
- Powershell实现监测服务器连通状态
- Sql Server 2005中查询用分隔符分割的内容中是否包含其中一个内容
- C语言中宏定义使用的小细节
- Linux上安装搭建Nginx服务器的详细步骤
- js日期对象兼容性的处理方法
- php中将网址转换为超链接的函数
- XMLHttp ASP远程获取网页内容代码
- 查看所有的Server Variables的环境变量
- Linux Shell 数组的创建及使用技巧
- ASP.NET与Ajax的实现方式小总结
- jQuery实现的简洁下拉菜单导航效果代码
- jQuery实现的超酷苹果风格图标滑出菜单效果代码
- 瀑布流布局并自动加载实现代码
- JavaScript中的正则表达式简明总结
- RPM相关应用技巧FAQ二
- VBS教程:方法-Delete 方法
- showModalDialog在谷歌浏览器下会返回Null的解决方法
- 无线局域网络简介一