⼀个server块中配置多个站点

server {
listen 80;
server_name ~^(www.)?(.+)$;
index index.php index.html;
root /html/$2;
}

站点的主⽬录结构:

/html/domain.com
/html/nginx.org

⼀个server块中为⼀个站点配置多个⼆级域名

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

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

/html/domain.com/www/
/html/domain.com/nginx/

PS:访问www.domain.com时,root⽬录为  /html/domain.com/www/

访问nginx.domain.com时,root⽬录为  /html/domain.com/nginx/

if语句的作⽤是将 domain.com 重定向到 www.domain.com,可以增加seo中对 www.domain.com 的域名权重。

指令详解

server_name 指令设置基于域名的虚拟主机,⼀个ip的服务器可以配置多个域名。下⾯这些server_name是有效的:

server_name domain.com;
server_name domain.com www. domain.com;
server_name *.domain.com;
server_name .domain.com;
server_name domain.*;
server_name "";
多个域名之间以空格分隔。nginx允许⼀个虚拟主机有⼀个或多个名字,也可以使⽤通配符"*"来设置虚拟主机的名字。
server_name指令在接到请求后的匹配顺序分别为:

1、准确的server_name匹配,例如:domain.com www.domain.com
2、以通配符开始的字符串: .domain.com  .domain.com
3、以通配符结束的字符串:www.
4、匹配正则表达式:~^(?.+).domain.com$
nginx将按照1,2,3,4的顺序对server name进⾏匹配,有⼀项匹配以后就会停⽌搜索,类似于location指令。

其他

有多个域名时(server_name other.domain.com www. domain.com;):fastcgi_param SERVER_NAME $server_name ,$server_name 会取值第一个域名(other.domain.com)。

$host 有可能等于 $server_name ,也可能是IP地址(直接通过访问此优先顺序取值:请求行中的主机名,或“主机”请求标头字段中的主机名,或与请求匹配的服务器名。

$1|$2|$3 ...是nginx在匹配正则时生成的变量,用于捕获一个正则表达式括号中匹配的字符串(从左到右依次存储在$1|$2|$3 ...中),新值覆盖旧值,可以使用变量保存需要用到的值set $pre $1

Nginx 虚拟主机中配置 server_name ⼀个server块中配置多个站点 ⼀个站点配置多个⼆级域名的更多相关文章

  1. nginx虚拟主机配置

    nginx虚拟主机配置   虚拟主机的概念虚拟主机,就是把一台物理服务器划分成多个"虚拟"的服务器,每一个虚拟主机都可以有独立的域名和独立的目录nginx虚拟主机的配置nginx的 ...

  2. Nginx教程(二) Nginx虚拟主机配置

    Nginx教程(二) Nginx虚拟主机配置 1 虚拟主机管理 1.1 Nginx管理虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主 ...

  3. Nginx教程--02.Nginx虚拟主机的配置

    1.Nginx虚拟主机的配置 1.1 在conf目录下,使用命令 : vim nginx.conf 对上图解释: //全局区 worker _processes 1; //表示当前有1个工作的子进程, ...

  4. nginx虚拟主机的配置

    nginx虚拟主机的配置 server { listen ; server_name 127.0.0.1; access_log off; root /var/www/html/; location ...

  5. nginx虚拟主机配置实践

    1.配置基于域名的虚拟主机 [root@web01 html]# egrep -v "#|^$" /application/nginx/conf/nginx.conf.defaul ...

  6. Nginx网络架构实战学习笔记(一):Nginx简介、安装、信号控制、nginx虚拟主机配置、日志管理、location 语法、Rewrite语法详解

    文章目录 nginx简介 nginx安装 nginx信号控制 nginx虚拟主机配置 日志管理 location 语法 精准匹配的一般匹配 正则匹配 总结 Rewrite语法详解 nginx简介 Ng ...

  7. Nginx教程(二) Nginx虚拟主机配置 (转)

    Nginx教程(二) Nginx虚拟主机配置 1 虚拟主机管理 1.1 Nginx管理虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主 ...

  8. Nginx虚拟主机配置(20200202)

    一台机器上跑多个站点,即多个域名 curl -xIP:port 域名    用来指定访问的域名在哪个IP的哪个端口上 Nginx默认虚拟主机 不管什么域名解析到该服务器,都会访问到默认虚拟主机 ngi ...

  9. Nginx虚拟主机、日志排错、模块配置

    目录 Nginx虚拟主机 1. 基于多IP的方式 2. 基于多端口的方式 3. 基于多域名的方式 Nginx日志 Nginx配置文件配置项 Nginx模块 Nginx访问控制模块 Nginx状态监控模 ...

  10. 6、架构--Nginx虚拟主机(基于多ip、端口、域名方式)、日志配置、Nginx模块(访问控制模块、状态监控模块、访问链接控制模块)

    笔记 1.晨考 2.昨日问题 3.今日内容 1.Nginx虚拟主机 - 基于多IP的方式 - 基于多端口的方式 - 基于多域名的方式 2.日志配置 Nginx有非常灵活的日志记录模式,每个级别的配置可 ...

随机推荐

  1. LRU 居然翻译成最近最少使用?真相原来是这样!

    前言 相信有很多同学和我一样,第一次碰到 LRU(Least Recently Used) 的这个解释「最近最少使用」都不知道是什么意思,用汤老师的话来说: 我真的感到匪夷所思啊! 最近是表示时间,最 ...

  2. 【C++ 数据结构:链表】二刷LeetCode707设计链表

    [C++链表] 使用c++重新写一遍LeetCode707设计链表 目的是熟悉c++中链表的操作 知识点 C++链表节点的实现 在c++中,一般通过结构体来定义链表的节点,也需要写构造函数(使用初始化 ...

  3. Java入门与进阶P-4.5+P-4.6

    逻辑类型 关系运算的结果是要给逻辑值,true或false.这个值可以保存在一个对应的逻辑类型变量中,这样的变量类型是boolean 布尔是为了纪念George Boole对逻辑计算得到贡献 bool ...

  4. 【分析笔记】全志平台 gpio_wdt 驱动应用和 stack crash 解决

    使用说明 第一次遇到看门狗芯片是通过切换电平信号来喂狗,如 SGM706 芯片,之前也比较少会用到看门狗芯片.原本打算参考 sunxi-wdt.c 的框架,利用定时器自己写一个,无意中发现内核已经有 ...

  5. C-04\IDE基础知识和分支,循环语句

    一.浮点数特性及比较方法 浮点数在多参数传参的时候默认是会进行精度转换,由float转换到double,浮点数是一个近视值,不能进行直接等于比较,一般可以用区间法比较但是会存在精度丢失的问题. 浮点数 ...

  6. spring-cloud06---Hystrix01简介

    转:https://segmentfault.com/a/1190000005988895 # 1.服务雪崩介绍## 1.1基本概念分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, ...

  7. 深度优先搜索算法-dfs讲解

    迷宫问题 有一个迷宫: S**. .... ***T (其中字符S表示起点,字符T表示终点,字符*表示墙壁,字符.表示平地.你需要从S出发走到T,每次只能向上下左右相邻的位置移动,不能走出地图,也不能 ...

  8. Github认证

    1.前言 Github关闭了密码认证,现在还有两种认证方式 token ssh 本人一直都在使用idea的可视化界面,进行git的操作,第一次使用bash进行初始化时遇到了身份验证的问题.现在简单总结 ...

  9. vue项目部署在nodejs+express

    一.安装node和打包vue项目就不用多说了 二.安装express Express是一个保持最小规模的灵活的Node.js web应用程序开发框架,为web和移动应用程序提供一组强大的功能 npm ...

  10. Zstack 鼎阳SDS6204示波器和Archiver Appliance的重度测试2

    https://blog.csdn.net/weixin_43767046/article/details/113748775 https://blog.csdn.net/weixin_4376704 ...