server_name 修改后如何平滑生效
直接修改配置文件中的 server_name 并执行 nginx -s reload 即可实现平滑更新。该操作会触发 nginx 主进程重新加载配置,子进程在接收完当前请求后切换至新配置,不会中断正在处理的连接。只需确保新域名已正确解析到服务器 ip,且防火墙允许相应端口访问。

新旧域名共存期间的流量路由策略
在过渡期内,若需同时保留旧域名和新域名的服务,可在同一 server 块中用空格分隔多个域名,或为不同域名配置独立的 server 块。Nginx 会根据请求头中的 Host 字段匹配对应的 server_name,从而将流量分发到正确的处理逻辑。这种配置允许新旧域名并行工作,便于逐步迁移用户。

# /etc/nginx/conf.d/example.conf
server {
listen 80;
# 同时绑定新旧域名
server_name old.example.com new.example.com;
location / {
proxy_pass http://backend_app;
}
}
基于特定域名绑定的重定向配置
当需要将旧域名永久迁移到新域名时,应在旧域名的 server 块中配置 return 301 指令。这样,访问旧域名的请求会被立即重定向到新域名,而新域名的 server 块则正常提供服务。这种分离配置确保了 SEO 权重的传递和用户体验的无缝衔接。
# 旧域名配置:重定向到新域名
server {
listen 80;
server_name old.example.com;
return 301 https://new.example.com$request_uri;
}
# 新域名配置:正常提供服务
server {
listen 443 ssl;
server_name new.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://backend_app;
}
}











