接上一篇,我们修改配置文件/etc/nginx/conf.d/netcore.conf,只需要把80端口的监听跳转到443端口即可。

示例如下:

server {
    listen 80;
    server_name lebang2020.cn www.lebang2020.cn;
    return 301 https://$http_host$request_uri;
}
server{
    listen 443 ssl;
    server_name lebang2020.cn www.lebang2020.cn;
   ……
}

这样当我访问http://lebang2020.cn时它会自动跳转到 https://lebang2020.cn,同理访问http://www.lebang2020.cn时它会自动跳转到https://www.lebang2020.cn。

443端口配置可以参考这里: Nginx证书的配置

其中$request_uri代表除host外的其它部分。

相关文章:

Nginx中$host $http_host和$proxy_host区别

Nginx 配置http强制跳转https

Nginx 反向代理设置 AspNetCore 站点的压缩

您与此网站之间建立的连接并非完全安全(Nginx)

 

 

写法要点与验证方法

return 301 是 Nginx 官方推荐的重定向写法,比 rewrite 配 rewrite permanent 更直接,80 端口的 server 块里一行就够。

  • 验证:curl -I http://lebang2020.cn,看到 301 与 Location 头即生效;
  • 加 HSTS 可省去一次跳转:在 443 的 server 块加 add_header Strict-Transport-Security,首次访问后的浏览器直接走 https;
  • 两个 server 块保持同一 server_name 列表,避免 www 与裸域一个跳一个不跳;
  • 改完先 nginx -t 验证语法再 reload;
  • 301 是永久重定向,搜索引擎会更新索引;临时调试用 302,别污染收录。

相关阅读

参考资料