最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx Server 配置中 server_name 如何写
时间:2026-08-08 08:25:54 编辑:袖梨 来源:一聚教程网
server_name用于匹配HTTP请求头中的Host字段,支持精确域名、通配符(如*.example.com)、正则表达式(以~开头)及空字符串或IP地址,匹配遵循完全一致原则(通配符/正则除外),需避免非法字符和重复定义。
server_name 用于定义当前 server 块响应哪些域名(或 IP)的请求,核心是匹配 HTTP 请求头中的 Host 字段。写法灵活,但需注意匹配逻辑和优先级。
基础写法:精确匹配域名
最常用、最明确的方式是直接写域名:
-
server_name example.com;→ 只响应Host: example.com -
server_name www.example.com example.com;→ 同时匹配两个 Host,空格分隔,顺序无关
支持通配符和正则:应对多子域或动态场景
通配符 * 只能放在开头或结尾,不能中间使用;正则以 ~ 开头:
-
server_name *.example.com;→ 匹配www.example.com、api.example.com,但不匹配example.com -
server_name example.*;→ 匹配example.com、example.org -
server_name ~^wwwd+.example.com$;→ 正则匹配www1.example.com、www99.example.com
匹配空 Host 或 IP 直接访问:用空字符串或 IP
当客户端没发 Host 头(如直接用 IP 访问),Nginx 会交给默认 server(通常是第一个或带 default_server 标志的);若想显式处理:
-
server_name "";→ 匹配空 Host 头(比如 curl -H "Host:" http://ip) -
server_name 192.168.1.100;→ 显式匹配该 IP(实际中较少单独依赖此项,Host 头才是关键)
注意事项和常见坑
匹配不是“包含”,而是完全一致(通配符/正则除外);多个 server_name 行等价于写在同一行;大小写不敏感;未匹配到时由默认 server 处理:
- 不要写
server_name www.example.com/;—— 斜杠非法,会启动失败 - 避免重复定义相同域名在不同 server 块中,除非明确控制 default_server
- 修改后务必
nginx -t检查语法,再nginx -s reload
相关文章
- 哔咔哔咔漫画PicACG官网安卓漫画免费阅读「下拉观看」 08-08
- 像素火影u鼬神最新版本唤境入口-2026像素火影网页版入口秒玩唤境地址 08-08
- 《Godzilla Minus One》续集将哥斯拉带到纽约市 08-08
- 亿图脑图-亿图脑图AI思维导图助手 08-08
- 塔猫Ai-ChatPPT-AI生成式PPT网站 08-08
- 数感星球app如何切换年级 08-08