步骤一:配置 HTTP 80 端口重定向到 HTTPS 443
编辑或创建一个 Nginx 的 server 块,监听 80 端口,并使用 return 301 永久重定向到 HTTPS。
server {
listen 80;
server_name example.com www.example.com;
# 强制重定向到 HTTPS
return 301 https://$host$request_uri;
}
$host 会自动替换为访问的域名,$request_uri 会保留原始请求路径和查询参数。
步骤二:配置 HTTPS 443 端口(供参考)
确保你还有一个监听 443 端口的 server 块来处理 HTTPS 请求,例如:
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ =404;
}
}
步骤三:测试并重启 Nginx
完成配置后,测试 Nginx 配置是否正确:
sudo nginx -t
如果没有问题,重新加载配置:
sudo systemctl reload nginx
可选:强制所有流量使用 HTTPS(包括 www 到非 www)
如果你还希望统一域名格式(比如强制 www.example.com 跳转到 example.com),可以结合多个重定向规则。
注意事项
确保你的服务器已经正确配置了 SSL 证书(如 Let's Encrypt)。
使用 301 是永久重定向,适用于生产环境。
如果你想测试,可以先使用 302 临时重定向。