网站运营 | 站长学院 | 技术文档 | 成语 | 歇后语 | 桌面壁纸 | 帝国时代 | 代码收藏 | IP地址查询 | 生活百科 | 生日密码 | CSS压缩 | 用户评论

详解Nginx虚拟主机配置中server_name的具体写法

【 更新时间:2016-08-25 | 字体:
[导读]server_name指令可以设置基于域名的虚拟主机>>,根据请求头部的内容>,一个ip的服务器可以配置多个域名。nginx允许一个虚拟主机有一个或多个名字>,也可以使用通配符 * 来设置虚拟主机的名字...

server_name指令可以设置基于域名的虚拟主机,根据请求头部的内容,一个ip的服务器可以配置多个域名>。下面这些server_name的参数是有效的:

server_name chinawobo.com;
server_name chinawobo.com www.chinawobo.com;
server_name *.chinawobo.com;
server_name .chinawobo.com;
server_name nginx.*;
server_name chinawobo.com 9enjoy.com
server_name "";

多个域名之间以空格分隔。nginx允许一个虚拟主机有一个或多个名字>>,也可以使用通配符"*"来设置虚拟主机的名字>。上面的例子我们看到了很多特殊的地方:

第一组例子>,首先定义server_name为chinawobo.com,那么来自http://www.chinawobo.com的请求就会发到该主机上。第二个例子配置了chinawobo.com和www.chinawobo.com,那么http://www.chinawobo.com和http://www.chinawobo.com的请求会发到这个主机上>>>>。
*.chinawobo.com和.chinawobo.com是等同的配置,设置该主机处理所有来自chinawobo.com的子域名,比如www.chinawobo.com,blog.chinawobo.com等
第二组server_name配置nginx.*>,配置服务器处理所有以nginx.开头的请求>。例如>,nginx.com,chinawobo.com,nginx.net,nginx.baidu.com
接下来一组第一个server_name配置>>>,设置主机处理来自三个域名的请求>>。nginx允许设置不是有效域名的名字>。比如接下来这个配置我们可以看到三个不是有效域名的例子,localhost,litchfiled和bledington>>。nginx只查找请求的HTTP头中的域名但并不判断域名是否有效>,这个例子中这些主机名可以配制在/etc/hosts中。当你在本机调试时使用非域名的主机名有时候更适合些>。
最后一组例子,server_name设置为空的双引号>,它告诉nginx捕捉所有没有hostname的请求,或者hostname没有在其它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/9enjoy.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.chinawobo.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://www.chinawobo.com/ 向您的朋友推荐此文章
  • 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站>,我们表示深深的谢意。如果本站转载的文章有版权问题请联系我们>>,我们会尽快予以更正>。
RSS订阅
  • QQ邮箱
  • 填写您的邮件地址,订阅我们的精彩内容:
更多
© 2014 网站运营 - T086.com(原itlearner.com)
  • 张天爱变胖了?淡雅甜笑险露双下巴 2018-05-26
  • 论对汉文化东传的基本认识 2018-05-26
  • 4月台州全市新建商品住宅成交3444套 2018-05-25
  • 河北盐山:“点、线、面”结合推进人才强县 2018-05-25
  • 北京市幼儿园年内完成全员培训 2018-05-25
  • 河南职业技术学院全国技能(导游类)大赛获佳绩 2018-05-24
  • Футбол -- Арены ЧМ-2018 -- Стадион Нижний Новгород 2018-05-24
  • 美媒:美国对华战略缺乏头脑 2018-05-23
  • 中国钢企布局沿海 柳钢瞄准东盟经济圈 2018-05-23
  • 2018的偶像元年是否只是一场美丽的谎言?偶像练习生创造101选秀 2018-05-22
  • 上海临港有个“儿童大学” 2018-05-20
  • 2017年世界大学学术排名发布 清华进前50大学学术排名大学排行榜 2018-05-20
  • 日本战犯侵华罪行自供 2018-05-19
  • 塑料污染让人痛心 世界最深海沟竟成“垃圾场” 2018-05-19
  • 男子因琐事杀害女友并分尸抛河 警方根据美甲破案嘉兴美甲死者 2018-05-18
  • 微商货源 | 冠珠陶瓷 | 6688电视家官网 | 中康体检网 | 安徽极热网 | 北京赛车开奖号码 | 快猴网 | 迪威乐云商devmsn | 易奇八字 | wwe美国职业摔角 | 八字算命 | 河南旅游景点大全 | 冠珠陶瓷 | 广东旅游景点大全 |
    RunTime:7.20ms QueryTime:7