http://www.cnblogs.com/buffer/archive/2011/08/17/2143514.html

Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了。
下面我就来说说server_name的使用吧:
server_name的匹配顺序
nginx中的server_name指令主要用于配置基于名称虚拟主机,server_name指令在接到请求后的匹配顺序分别为:
1、准确的server_name匹配,例如:
server {
listen 80;
server_name ssdr.info www.ssdr.info;
...
}

2、以*通配符开始的字符串:
server {
listen 80;
server_name *.ssdr.info;
...
}

3、以*通配符结束的字符串:
server {
listen 80;
server_name www.*;
...
}

4、匹配正则表达式:
server {
listen 80;
server_name ~^(?.+)\.howtocn\.org$;
...
}

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

站点的主目录应该类似于这样的结构:
/data/wwwsite/ssdr.info
/data/wwwsite/linuxtone.org
/data/wwwsite/baidu.com
/data/wwwsite/google.com

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

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

实际网站目录结构中我们通常会为站点的二级域名独立创建一个目录,同样我们可以使用正则的捕获来实现在一个server块中配置多个二级域名:
server
{
listen 80;
server_name ~^(.+)?\.howtocn\.org$;
index index.html;
if ($host = ssdr.info){
rewrite ^ http://www.ssdr.info permanent;
}
root /data/wwwsite/ssdr.info/$1/;
}

站点的目录结构应该如下:
/data/wwwsite/ssdr.info/www/
/data/wwwsite/ssdr.info/nginx/

这样访问www.ssdr.info时root目录为/data/wwwsite/ssdr.info/www/,nginx.ssdr.info时为/data/wwwsite/ssdr.info/nginx/,以此类推。
后面if语句的作用是将ssdr.info的方位重定向到www.ssdr.info,这样既解决了网站的主目录访问,又可以增加seo中对www.ssdr.info的域名权重。

多个正则表达式

如果你在server_name中用了正则,而下面的location字段又使用了正则匹配,这样将无法使用$1,$2这样的引用,解决方法是通过set指令将其赋值给一个命名的变量:
server
{
listen 80;
server_name ~^(.+)?\.howtocn\.org$;
set $www_root $1;
root /data/wwwsite/ssdr.info/$www_root/;
location ~ .*\.php?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/wwwsite/ssdr.info/$fastcgi_script_name;
include fastcgi_params;
}
}

Nginx技巧:灵活的server_name,Nginx配置一个服务器多个站点 和 一个站点多个二级域名...相关推荐

  1. mysql服务器管理员_配置MySQL服务器时,需要设置一个管理员账号,其名称是( )。...

    配置MySQL服务器时,需要设置一个管理员账号,其名称是( ). 答:root 当访问无效的数组下标时,会发生 答:抛出异常 频率特性 G(jω) 的曲线关于复数平面的实轴对称. 答:对 董先生提到, ...

  2. 一个服务器启动2套mysql_一个服务器启动两个mysql实例

    在一台服务器上,可以通过mysqld_multi配置多个Mysql实例运行. 假设服务器上现在已经运行一个MYSQL实例,数据目录是/var/lib/mysql,端口是3306,所用的SOCKET连接 ...

  3. 解决:一个服务器oracle多实例有一个实例没启动,需手动启动操作指引教程

    操作背景: Centos6.5 一个服务器内 部署了两个数据库实例 orcl1 和 orcl2 现遇到问题,orcl1运行正常,orcl2链接不上(实例未启动) 现需要在不影响orcl1的运行的前提, ...

  4. mysql管理员默认是什么_配置mysql服务器时,需要设置一个管理员帐号,其默认名称是( )。...

    [判断题]波特率是指通信过程中每秒钟传输字节数的个数. A. 正确 B. 错误 [单选题]船政学堂前后总共有__________所学堂 A. 6 B. 7 C. 8 D. 9 人们常说创业是白手起家. ...

  5. 从一个服务器拷贝文件到另一个服务器,从一台服务器上拷贝到另一台服务器

    今天需要拷贝一个安装包到服务器上,安装包很大.网络不是很好.如果从本机拷贝上去要很久. 刚好其他服务器上上次传过这个包.可不可以直接拷过去呢? 于是就百度了下, 发现一个很好用的命令: scp use ...

  6. Nginx二级域名及多Server反向代理配置

    Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. 注:nginx反向代理同一ip多个域名,给head ...

  7. Nginx反向代理实现负载均衡配置图解

     come from: http://www.php100.com/html/program/nginx/2013/0905/5529.html 负载均衡配置是超大型机器需要考虑的一些问题,同时也 ...

  8. Nginx 集群安装以及常用配置详解开机自启动

    Nginx 配置文件详解 main: 全局配置 event: 配置工作模式以及连接数 http: http 模块相关配置 server 虚拟主机配置,可以有多个 location 路由规则,表达式 u ...

  9. centos7 samba 离线安装_CentOS 7安装配置Samba服务器(挂载共享文件夹)

    CentOS 7安装配置Samba服务器 CentOS 7下Samba服务器安装配置过程笔记. 假设我们有这样一个场景 共享名 路径 权限 SHAREDOC /smb/docs 所有人员包括来宾均可以 ...

最新文章

  1. archlinux常用的包管理器
  2. JAVA - package与import解析(一)
  3. spdk-nvmf指南
  4. jQuery live事件说明及移除live事件方法
  5. Objective-C中的一些特殊的数据类及NSLog的输出格式
  6. 无法连接到 visual studio 开发服务器
  7. p6spy mysql8_P6Spy配置使用
  8. 【MOS管知识汇总】分类、区分、寄生二极管、导通条件、开关电路、串联电阻
  9. 两年软件开发工作总结及未来展望
  10. 电容上电后是短路还是开路?
  11. python12306抢票_GitHub - versionzhang/python_12306: python 12306 抢票工具
  12. c#如何实现软件授权后才能使用?
  13. win10 nas搭建_零起步自建家用NAS
  14. <update></update>
  15. 申请支付宝授权,提现测试环境步骤
  16. 如何将win10电脑主题设置成深色
  17. 记一次面试的尴尬,说说作为数据库工程师,学好英语的重要性
  18. MJ恋上数据结构(第1季 + 第2季)笔记
  19. MYSQL函数YEAR,MONTH,QUARTER,WEEK用法
  20. 非诚勿扰孟非经典语录

热门文章

  1. Node.js的交互式解释器(REPL)
  2. java类的完整生命周期详解
  3. 交互式计算机图形学总结:第三章 几何对象和变换
  4. Java打印车票主要学习Java的比较语句
  5. 最新发布丨金融新基建系列报告:银行业六大中期趋势展望
  6. 视频 + PPT | 突破“十面埋伏”,银行业玩转数字化运营
  7. 周五话运营 | 和用户谈一段不分手的恋爱(留存分析)
  8. CentOS7 Zabbix3.4安装
  9. 《途客圈创业记:不疯魔,不成活》一一2.1 创新工场初印象
  10. graph theory important questions