您的位置:首页 > 运维架构 > Nginx

nginx学习(十)——nginx的配置系统6之server_name

2016-09-12 17:20 585 查看

指令描述

使用上下文: server

默认值: ""

语法: server_name name ...(多个name以空格分隔)

指令作用

根据HTTP请求的header Host选择nginx配置文件里符合条件的server_name的server配置。因此,一个配置文件里可以配置多个不同域名的服务。

Server names匹配的顺序如下:

完全匹配的server_name;

后缀匹配: *.example.com;

前缀匹配: www.example.*;

正则匹配;

若前面四项都没匹配上,则根据以下顺序:

listen指令里配置了default或default_server的server;

第一个匹配上listen的server。

指令匹配顺序举例

配置文件的http域里增加:

server {
listen 8000;
server_name www;
location / {
echo "first";
}
}

server {
listen 8000;
server_name www.example.com;
location / {
echo "second";
}
}

server {
listen 8000;
server_name www.example.*;
location / {
echo "third";
}
}

server {
listen 8000;
server_name ~\w+.com;
location / {
echo "forth";
}
}

server {
listen 8000;
server_name ~.*example.com;
location / {
echo "fifth";
}
}
urlresult说明
http://www.example.com/ second全匹配
http://www.example.org/ third前缀匹配
http://example.com/ forth进入第一个正则匹配的server
http://www.baidu.com/ forth同上
http://example.org/ first无匹配上的server_name, 返回第一个符合的listen的server,即第一个
#在配置文件里再加入一个配置
server {
listen 8000 default;
server_name _;

location / {
echo "sixth";
}
}则访问http://example.org/,返回sixth
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: