Nginx绑定域名配置
时间:2026-10-20 07:18 作者:emer 分类: 无
Nginx绑定域名配置
引言
一台服务器跑多个站点,靠server_name区分访问哪个域名,配合DNS解析和站点根目录,Nginx按Host头把请求路由到对应虚拟主机。配置顺序写错或server_name不匹配,会落到默认站点。
基础域名站点
server {
listen 80;
server_name www.example.com example.com;
root /var/www/example;
index index.html index.php;
}
server_name可并列写主域名和裸域名,root指向站点目录。
裸域名跳转到www
server {
listen 80;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
避免两个域名都解析内容造成重复收录,统一到一个规范域名。
多个域名并列
server_name api.example.com admin.example.com;
同一套站点对应多个子域名时直接空格分隔。
反向代理绑定域名
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
}
}
域名指向后端服务,记得把Host头透传给上游。
配置后检查重载
nginx -t
nginx -s reload
先测语法再平滑重载,reload不断连接。
匹配规则
- 精确域名优先,然后通配符,最后默认站点;
- 没匹配上server_name的请求落到default_server;
- 通配符*.example.com不能匹配example.com裸域;
- 多站点注意别让无关域名被默认站点接住。
注意事项
- DNS要先把A记录解析到服务器IP,否则域名打不开;
- server_name区分大小写但通常小写;
- 80改443需另配SSL证书块;
- return 301统一域名利于SEO避免重复;
- 防火墙和安全组放行80、443;
- 多个server块listen 80,靠server_name分流。
总结
server_name在server块绑定域名,可并列多个,裸域301跳www统一规范,反代时透传Host,改完nginx -t检查再reload。匹配精确优先于通配符,未命中走默认站点,前提是DNS解析到位、端口放行,统一域名有助于SEO避免重复收录。
标签: Nginx 反向代理 虚拟主机 server_name 域名绑定