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
,可以实现多域名、多子域名的虚拟主机管理。
本篇文章内容来源于:Nginxserver_name 配置主机名称详细说明以及案例
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。