Nginx的server_name的格式 博客分类: 技术总结 Nginxserver_name格式
程序员文章站
2024-03-16 19:16:16
...
server { listen 80; server_name domain.com www.domain.com; ... }
server { listen 80; server_name *.domain.com;
... }
server { listen 80; server_name www.*; ... }
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/baidu.com
/data/wwwsite/google.com
server { listen 80; server_name ~^(.+)?\.domain\.com$;
index index.html; if ($host = domain.com){
rewrite ^ http://www.domain.com permanent;
} root /data/wwwsite/domain.com/$1/;
}
/data/wwwsite/domain.com/www/
/data/wwwsite/domain
.com/nginx/