📝 Nginx 配置日志:裸域名不带www跳转到www + SSL 证书配置案例

社区话题 Linux/macOS 与自动化运维 📝 Nginx 配置日志:裸域名不带www跳转到www + SSL 证书配置案例

标签: 

  • 该话题为空。
正在查看 0 条回复
  • 作者
    帖子
    • #1222

      追光
      管理员

      以下是一份清晰、规范的 Nginx 配置日志说明,用于将 不带 www 的域名(newvfx.com)统一 301 跳转到带 www 的版本(www.newvfx.com),并包含正确的 SSL 证书配置。

      目标
      所有对 newvfx.com(HTTP 或 HTTPS)的访问,均 301 重定向到 https://www.newvfx.com$requesturi
      使用现有证书(路径已从配置中提取)
      确保跳转仅一次,避免链式重定向

      证书信息(来自现有配置)
      证书文件:/home/wwwroot/lnmp/etc/newvfx-lessl-ssl/newvfx-lessl.crt
      私钥文件:/home/wwwroot/lnmp/etc/newvfx-lessl-ssl/newvfx-lessl.key
      DH 参数:/home/wwwroot/lnmp/etc/newvfx-lessl-ssl/newvfx-lessl.pem
      ✅ 该证书已覆盖 http://www.newvfx.com,需确认是否包含 newvfx.com(建议包含,否则 HTTPS 裸域访问会报证书错误)

      🔧 Nginx 配置代码

      裸域名跳转规则:newvfx.com → https://www.newvfx.com
      作者:运维日志
      日期:2025-04-05
      说明:统一入口,避免 SEO 分散,提升安全性

      方法:在主server块之外 单独增加一个server块,单独定义不带www的域名newvfx.com,使用301重定向到www域名。建议将server块添加到主server块结束之后,而不是加到之前,很多面板的参数设置都会自动更改第一个server块,所以将其作为第二个server块来处理。

      HTTP 裸域名 → HTTPS www(一次跳转)

      server {
      listen 80;
      listen [::]:80;
      servername newvfx.com;
      return 301 https://www.newvfx.com$requesturi;
      }
      HTTPS 裸域名 → HTTPS www(一次跳转)
      server {
      listen 443 ssl http2;
      listen [::]:443 ssl http2;
      servername newvfx.com;
      
      #SSL 证书(复用现有证书)
      sslcertificate  /home/wwwroot/lnmp/etc/newvfx-lessl-ssl/newvfx-lessl.crt;
      sslcertificatekey /home/wwwroot/lnmp/etc/newvfx-lessl-ssl/newvfx-lessl.key;
      ssldhparam  /home/wwwroot/lnmp/etc/newvfx-lessl-ssl/newvfx-lessl.pem;
      
      #强制跳转
      return 301 https://www.newvfx.com$requesturi;
      }

      ✅ 验证方式

      1. 测试 HTTP 裸域:
      bash

      curl -I http://newvfx.com

      应返回:Location: https://www.newvfx.com/

      2. 测试 HTTPS 裸域:

      curl -I https://newvfx.com

      应返回:Location: https://www.newvfx.com/

      3. 检查证书是否包含裸域(避免浏览器警告):
      bash

      openssl x509 -in /home/wwwroot/lnmp/etc/newvfx-lessl-ssl/newvfx-lessl.crt -text | grep -A1 \"Subject Alternative Name\"

      输出应包含:

      DNS:newvfx.com, DNS:www.newvfx.com, …

      📌 注意事项
      若证书未包含 newvfx.com,请重新申请包含裸域的证书(如 Let\’s Encrypt 多域名证书)。
      此配置不影响 http://www.newvfx.com 的主站服务,主站应由另一个 server 块处理。
      重载 Nginx 后生效:nginx -s reload

      ✅ 最终效果:用户无论输入 http://newvfx.com、https://newvfx.com,均一次跳转至 https://www.newvfx.com/xxx,符合 SEO 与安全最佳实践。

正在查看 0 条回复
  • 在下方一键注册,登录后就可以回复啦。