前言
作为nginx的http模块中的重要指令,对于使用nginx的同学来说,有必要做深入的了解;
server_name指令
用于设置虚拟主机服务名称,如:127.0.0.1 、 localhost 、域名[www.baidu.com | www.jd.com]

关于server_name的配置方式有三种,分别是:
- 精确匹配
- 通配符匹配
- 正则表达式匹配
精确匹配配置
server {
listen 80;
server_name www.baidu.com www.localhost;
}
如下:在windows本地的nginx.conf配置文件中配置了如下参数
需要注意的是,如果是在实际的生产服务器上面进行配置的话,域名一定是有效的,server_name可以配置多个,然后重启nginx服务,访问下试试,可以看到通过两种方式都可以访问到nginx;


通配符模式配置
server_name中支持通配符"*",但需要注意的是通配符不能出现在域名的中间,只能出现在首段或尾段
server_name localhost www.zcy.*;
如本地的nginx按照上面的配置,重启nginx服务之后,通过浏览器进行访问,可以看到均可以访问到;


正则表达式配置
server_name中可以使用正则表达式,并且使用~作为正则表达式字符串的开始标记
常见的正则表达式
|
代码
|
说明
|
|
^
|
匹配搜索字符串开始位置
|
|
$
|
匹配搜索字符串结束位置
|
|
.
|
匹配除换行符\n之外的任何单个字符
|
| \ |
转义字符,将下一个字符标记为特殊字符
|
|
[xyz]
|
字符集,与任意一个指定字符匹配
|
|
[a-z]
|
字符范围,匹配指定范围内的任何字符
|
|
\w
|
与以下任意字符匹配 A-Z a-z 0-9 和下划线,等效于[A-Za-z0-
9_]
|
|
\d
|
数字字符匹配,等效于[0-9]
|
|
{n}
|
正好匹配n次
|
|
{n,}
|
至少匹配n次
|
|
{n,m}
|
匹配至少n次至多m次
|
|
*
|
零次或多次,等效于{0,}
|
| + |
一次或多次,等效于{1,}
|
| ? |
零次或一次,等效于{0,1}
|
实际配置案例
server_name ~^www\.(\w+)\.com$;
重启nginx服务,浏览器访问上面的地址,可以看到仍然能正常访问

本文详细介绍了Nginx的http模块中的server_name指令,用于设置虚拟主机服务名称。内容涵盖精确匹配、通配符匹配和正则表达式的配置方法,并提供了实际配置案例。通过了解这三种匹配方式,读者能够更好地管理和配置Nginx的虚拟主机。
655

被折叠的 条评论
为什么被折叠?



