Nginxserver_name 配置主机名称详细说明以及案例
参考资料
server_name 是 Nginx 配置中用于指定虚拟主机的主机名或域名。它决定了哪个 server 块将处理特定的请求。以下是详细说明及案例:
1. 基本语法
server_name name1 name2 name3 ...;
name1,name2,name3等可以是域名、IP 地址或通配符。
2. 匹配规则
精确匹配:
server_name与请求的Host头完全匹配。通配符匹配:
前缀通配符:
*.example.com匹配a.example.com、b.example.com等。后缀通配符:
example.*匹配example.com、example.net等。正则表达式匹配:以
~开头,如~^www\d+\.example\.com$匹配www1.example.com、www2.example.com等。
3. 默认服务器
如果没有匹配的
server_name,Nginx 会使用第一个server块作为默认服务器。可以通过
default_server参数显式指定默认服务器:listen 80 default_server; server_name _;
4. 案例
案例 1:精确匹配
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example;
index index.html;
}该配置处理
example.com和www.example.com的请求。
案例 2:通配符匹配
server {
listen 80;
server_name *.example.com;
root /var/www/wildcard;
index index.html;
}该配置处理所有子域名(如
a.example.com、b.example.com)的请求。
案例 3:正则表达式匹配
server {
listen 80;
server_name ~^www\d+\.example\.com$;
root /var/www/regex;
index index.html;
}该配置处理
www1.example.com、www2.example.com等请求。
案例 4:默认服务器
server {
listen 80 default_server;
server_name _;
root /var/www/default;
index index.html;
}该配置作为默认服务器处理所有未匹配的请求。
5. 优先级
精确匹配 > 最长前缀通配符 > 最长后缀通配符 > 正则表达式匹配 > 默认服务器。
6. 注意事项
多个
server_name之间用空格分隔。正则表达式匹配需要以
~开头。server_name可以包含 IP 地址,但不推荐。
通过合理配置 server_name,可以实现多域名、多子域名的虚拟主机管理。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . 宝塔 | 西里网》 -- 发布时间:2025-03-29
本页链接:https://bt.ciilii.com/show/news-61.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
