接上一篇,我们修改配置文件/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区别
写法要点与验证方法
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,别污染收录。
相关阅读
- IIS 配置 80 跳转 443:网站强制 HTTPS 访问的设置方法
- Nginx反向代理启用AspNetCore站点的压缩
- 您与此网站之间建立的连接并非完全安全 (Nginx)
- Nginx 配置 IP 黑名单(四):用独立文件管理封禁地址