🗣 SL提问: server_name 多域名
✍️ Ai批改: 在 Nginx 配置中,`server_name` 指令用于指定服务器块(`server` 块)响应的域名。你可以通过多种方式配置多个域名,灵活满足不同需求。以下是详细说明和示例:
-
1、基本多域名配置
在同一个 `server` 块中,用空格分隔多个域名:
nginx
server {
listen 80;
server_name example.com www.example.com api.example.com;
location / {
root /var/www/html;
index index.html;
}
}
效果:访问 `example.com`、`www.example.com` 或 `api.example.com` 均会由该 `server` 块处理。
-
2、通配符域名
使用 `*` 匹配子域名或前缀:
nginx
server {
listen 80;
server_name *.example.com;
处理所有以 .example.com 结尾的域名(如 a.example.com、b.example.com)
}
注意:通配符仅匹配一级子域名(如 `a.example.com`),不匹配多级子域名(如 `a.b.example.com`)。
-
3、正则表达式匹配
使用 `~` 开头定义正则表达式:
nginx
server {
listen 80;
server_name ~^(www\.)?(?<subdomain.+)\.example\.com$;
location / {
root /var/www/$subdomain;
动态路径:如 dev.example.com 对应 /var/www/dev
}
}
用途:动态捕获子域名并映射到不同目录。
-
4、默认服务器(兜底处理)
指定默认 `server` 块处理未匹配的请求:
nginx
server {
listen 80 default_server;
server_name _; 匹配任意域名
return 444; 关闭连接(或自定义错误页)
}
场景:防止恶意域名解析到你的服务器。
-
5、多域名与 HTTPS 配置
结合 SSL 证书的多域名配置(如 Let's Encrypt):
nginx
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://backend;
}
}
-
常见问题
1、优先级规则:
精确匹配(如 `example.com`) 通配符(如 `*.example.com`) 正则表达式 默认服务器。
2、重复域名:
避免在多个 `server` 块中重复定义相同域名,否则 Nginx 会优先匹配第一个。
3、性能影响:
正则表达式和大量域名可能轻微影响性能,建议优先使用精确匹配。
-
示例:多环境配置
nginx
开发环境
server {
listen 80;
server_name dev.example.com;
root /var/www/dev;
}
生产环境
server {
listen 80;
server_name example.com www.example.com;
root /var/www/prod;
}
通过灵活组合上述方法,可以高效管理多域名需求。如有疑问,欢迎进一步提问!
0
IP地址: 112.219.252.91
搜索次数: 2
提问时间: 2025-07-13 18:26:51
❓️ 热门提问:
香港买药网站
k金材质的项链掉色吗
黄金近30年价格走势图
中国贵金属交易网001
成都现在的金价多少钱一克
各品牌黄金回收
旧域名转卖
黄金回收一克多少钱2
中国24个珠宝批发市场
华润元大润丰纯债债券D
豌豆Ai站群搜索引擎系统
🤝 关于我们:
三乐Ai
作文批改
英语分析
在线翻译
拍照识图
Ai提问
英语培训
本站流量
联系我们
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.05.20》搭建本站。