You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.04下Nginx 1.20.1配置oldsite到newsite的重定向问题

Nginx域名重定向配置方案

需求背景

  • 运行环境:Ubuntu 16.04 + Nginx 1.20.1,多站点托管
  • 原有站点域名:oldsite.example.com
  • 新建站点域名:newsite.example.com,已完成DNS解析配置,持有独立SSL证书,需同时支持HTTP/HTTPS访问
  • 需求:将oldsite.example.com的所有访问流量永久重定向到新域名对应路径

一、旧域名(oldsite.example.com)配置修改

原有旧域名配置需要替换为如下内容,覆盖原有80端口、443端口的server块:

# 旧域名HTTP请求重定向到新域名HTTPS
server {
  server_name oldsite.example.com;
  listen 80;
  return 301 https://newsite.example.com$request_uri;
}

# 旧域名HTTPS请求重定向到新域名HTTPS
server {
  listen 443 ssl;
  server_name oldsite.example.com;
  # 此处填写旧域名原有的SSL证书配置(需保留,否则HTTPS访问旧域名会报证书错误)
  ssl_certificate /path/to/oldsite/fullchain.pem;
  ssl_certificate_key /path/to/oldsite/privkey.pem;
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

  add_header Content-Security-Policy upgrade-insecure-requests;
  return 301 https://newsite.example.com$request_uri;
}

注意:必须保留旧域名的HTTPS证书配置,否则用户直接访问https://oldsite.example.com时会触发证书错误,无法完成重定向。

二、新域名(newsite.example.com)配置

新增如下配置块,确保新域名同时支持HTTP和HTTPS访问:

# 新域名HTTP请求处理
server {
  server_name newsite.example.com;
  listen 80;
  # 若无需强制HTTPS,可删除下方return行,直接填写站点root、index等配置
  return 301 https://newsite.example.com$request_uri;
}

# 新域名HTTPS站点配置
server {
  listen 443 ssl;
  server_name newsite.example.com;
  # 新站点独立SSL证书配置
  ssl_certificate /path/to/newsite/fullchain.pem;
  ssl_certificate_key /path/to/newsite/privkey.pem;
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

  add_header Content-Security-Policy upgrade-insecure-requests;
  # 下方填写新站点实际配置,示例如下:
  root /var/www/newsite;
  index index.html index.htm index.php;

  # 其他站点规则(伪静态、反向代理等按实际需求添加)
}

三、配置生效步骤

  1. 执行nginx -t校验配置文件语法是否正确,返回syntax is ok、test is successful说明配置无误
  2. 执行systemctl reload nginx重载Nginx配置,使规则生效
  3. 分别访问http://oldsite.example.com、https://oldsite.example.com、http://newsite.example.com、https://newsite.example.com验证重定向和站点访问是否正常

内容的提问来源于stack exchange,提问作者mks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:09:03