关于Nginx的server_name

标签: nginx server name | 发表时间:2016-04-10 19:06 | 作者:lixuguang
出处:http://www.iteye.com
Nginx中的server_name指令主要用于配置基于名称的虚拟主机,server_name指令在接到请求后的匹配顺序分别为:

1、准确的server_name匹配,例如:

 

server {
     listen       80;
     server_name  domain.com  www.domain.com;
     ...
}

 

 

2、以*通配符开始的字符串:

server {
     listen       80;
     server_name  *.domain.com;    
... }

3、以*通配符结束的字符串:

server {
     listen       80;
     server_name  www.*;
     ...
}

4、匹配正则表达式:

server {
     listen       80;
     server_name  ~^(?.+)\.domain\.com$;    
... }
nginx将按照1,2,3,4的顺序对server name进行匹配,只有有一项匹配以后就会停止搜索,所以我们在使用这个指令的时候一定要分清楚它的匹配顺序(类似于location指令)。
server_name指令一项很实用的功能便是可以在使用正则表达式的捕获功能,这样可以尽量精简配置文件,毕竟太长的配置文件日常维护也很不方便。下面是2个具体的应用:
1、在一个server块中配置多个站点:
server
   {
     listen       80;
     server_name  ~^(www\.)?(.+)$;
     index index.php index.html;
     root  /data/wwwsite/$2;
   }

站点的主目录应该类似于这样的结构:

/data/wwwsite/domain.com
/data/wwwsite/nginx.org
/data/wwwsite/baidu.com
/data/wwwsite/google.com

 

这样就可以只使用一个server块来完成多个站点的配置。

2、在一个server块中为一个站点配置多个二级域名。

实际网站目录结构中我们通常会为站点的二级域名独立创建一个目录,同样我们可以使用正则的捕获来实现在一个server块中配置多个二级域名:

 

server
   {
     listen       80;
     server_name  ~^(.+)?\.domain\.com$;    
index index.html; if ($host = domain.com){
rewrite ^ http://www.domain.com permanent;
} root /data/wwwsite/domain.com/$1/;
}

站点的目录结构应该如下:

/data/wwwsite/domain.com/www/    
/data/wwwsite/domain
.com/nginx/

这样访问www.domain.com时root目录为/data/wwwsite/domain.com/www/,nginx.domain.com时为/data/wwwsite/domain.com/nginx/,以此类推。

后面if语句的作用是将domain.com的方位重定向到www.domain.com,这样既解决了网站的主目录访问,又可以增加seo中对www.domain.com的域名权重。

本文出自 “ 相濡以沫” 博客,请务必保留此出处 http://onlyzq.blog.51cto.com/1228/535279



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [nginx server name] 推荐:

Nginx多Server反向代理配置

- - 企业架构 - ITeye博客
Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. 下面我就来说说server_name的使用吧:. server_name的匹配顺序. nginx中的server_name指令主要用于配置基于名称虚拟主机,server_name指令在接到请求后的匹配顺序分别为:.

使用nginx作为websocket的proxy server

- - CSDN博客推荐文章
WebSocket协议为创建客户端和服务器端需要实时双向通讯的webapp提供了一个选择. 其为HTML5的一部分,WebSocket相较于原来开发这类app的方法来说,其能使开发更加地简单. 大部分现在的浏览器都支持WebSocket,比如Firefox,IE,Chrome,Safari,Opera,并且越来越多的服务器框架现在也同样支持WebSocket.

RTMP 流媒体服务器 GitHub - arut/nginx-rtmp-module: NGINX-based Media Streaming Server

- -
几个优秀的RTMP 流媒体服务器:. NGINX-based Media Streaming Server:基于Nginx插件. SRS(Simple RTMP Server) over state-threads:基于C++. livego:基于go语言. node-rtsp-rtmp-server:基于 Node.js.

GitHub - winshining/nginx-http-flv-module: Media streaming server based on nginx-rtmp-module. In addtion to the features nginx-rtmp-module supplies, HTTP-FLV, GOP cache and VHOST are supported now.

- -
MUSTbe enclosed by quotation marks, or arguments in url will be discarded (some shells not so smart will interpret "&" as "run in background").. ngx_rtmp_stat_modulemay not get statistics from a specified worker process in multi-processes mode, for HTTP requests are randomly distributed to worker processes.

Name Changer – 批量改名大杀器[Mac] | 小众软件 > Mac

- Paladin.lao - 小众软件
谷利二狗是文件名强迫症,只要一个目录超过两个文件,他就强迫症一样要给文件加上序号. 即使没有这种倾向,MP3,照片,视频,文档等等等等,让文件名包含能够体现文件特点的东西会使之便于搜索. Name Change,批量改名必备. 免费强大,可以对多个文件名进行任意字符数的前削后减、加序号、字符串搜索替换、日期排序,还支持正则表达式.

从Domain Name到QRCode谈Traffic入口思维

- - 雷锋网
像商标的价值一样,在过去的十几年里,Domain Name 一直是各类网站的最重要入口,获得一个简短好记的 dot com Domian Name,如同拥有一个金字招牌,也是网站最简单有效的方法提高用户的回访率和忠诚度. 历史上诸如 Hotels.com, Sex.com, Fund.com 等 Domain Name 转让费用均达到千万美金,而百万美金级别的 Domain Name 交易更是屡见不鲜.

SQL Server--索引

- - CSDN博客推荐文章
         1,概念:  数据库索引是对数据表中一个或多个列的值进行排序的结构,就像一本书的目录一样,索引提供了在行中快速查询特定行的能力..             2.1优点:  1,大大加快搜索数据的速度,这是引入索引的主要原因..                             2,创建唯一性索引,保证数据库表中每一行数据的唯一性..

SQL Server 面试

- - SQL - 编程语言 - ITeye博客
在SQL语言中,一个SELECT…FROM…WHERE语句称为一个查询块,将一个查询块嵌套在另一个查询块的WHERE子句中的查询称为子查询. 子查询分为嵌套子查询和相关子查询两种. 嵌套子查询的求解方法是由里向外处理,即每个子查询在其上一级查询处理之前求解,子查询的结果作为其父查询的查询条件. 子查询只执行一次,且可以单独执行;.

什么是Server SAN? Server SAN精解

- - 云存储技术网--光头老蒋
Server SAN是现在一个全新的概念,现在给出的概念都太笼统. 按照老蒋的想法:Server San应该是一个利用软件将基于DAS存储(包含闪存卡,直连存储)的集合,做成一个能共享的SAN存储网络.      SAN存储区域网,大家都很熟悉. 普遍使用的就两种: FC SAN;ISCSI SAN.

weblogic server启动慢

- - Linux - 操作系统 - ITeye博客
(1)较好的解决办法: 在Weblogic启动参数里添加 “-.   Djava.security.egd=file:/dev/./urandom” (/dev/urandom 无法启动). 修改Linux上Weblogic使用的jdk $JAVA_HOME/jre/lib/security/java.security 文件.