收藏文章 楼主
Nginx配置 ~ 泛域名http默认跳转https
网友【Ranger】 2020-07-04 16:43:53 分享在【时代发展的印记】版块    1    9

网友分享在meiguo.com上的图片

基于全球的网络安全,现在浏览器基本都将默认的HTTP站点标识为不安全,很多站点都将HTTP网站添加SSL证书,切换至HTTPS加密协议。

Nginx作为高性能的HTTP和反向代理web服务,一般作为服务入口提供负载均衡和流量分发,因此我们在Nginx上添加SSL证书,实现HTTPS访问;同时为保证用户无感知,需要配置HTTP默认跳转HTTPS。

下面我们来解析下泛域名下的http默认跳转https。

rewrite跳转

server{
listen 80;
server_name *.test.cn;
rewrite ^(.*)$ https://$server_name$1 permanent;
}

此时浏览器访问报错:

网友分享在meiguo.com上的图片

其实此时使用rewrite跳转在单域名是没有问题,但是在多域名或泛域名下是有问题的,我们此时使用在nginx安装echo-nginx-modulem模块以调试(模块安装忽略)。

调试过程

1.依次打印nginx内置变量server_name,host,http_host

server{
listen 80;
server_name *.test.cn;
location / {
default_type 'text/plain';
echo $server_name;
echo $host;
echo $http_host;
}
}

浏览器访问:

网友分享在meiguo.com上的图片

2.错误分析

从变量打印来看:

server_name值为*.test.cn

host值为www.test.cn

http_host值为www.test.cn

此时虽然我们输入域名为www.test.cn,但实际rewrite的url为:https://*.test.cn,因此访问报错。

注意:如果你的nginx的域名为"server_name a.test.cn *.test.cn www.test.cn",则变量server_name的值为a.test.cn,即匹配的是配置文件中server_name第一个域名。

3.解决方式

根据变量值,我们需要更改rewrite后的url为:

 rewrite ^(.*)$ https://$host$1 permanent;

rewrite ^(.*)$ https://$http_host$1 permanent;

return

return除了支持直接跟状态码,还可以跟字符串或者url链接,用于返回字符串或url链接。

http默认跳转为https配置如下:

server{
listen 80;
server_name *.test.cn;
return 301 https://$http_host$request_uri;
}

总结

return和rewrite虽然都实现了跳转,但是是有区别的:

1.return 指令简单高效,建议尽量使用 return,而不是 rewrite;

2.return 指令告诉 Nginx 停止处理请求,直接返回 301 (Moved Permanently) 代码并跳转重写后的地址;

3.rewrite指定并不会立即结束Nginx的处理流程,会根据重写后的地址继续匹配相应的location,除非使用break结束。

扩展

如果使用Nginx+Lua,你会发现在整个Nginx的访问流程中,return指令处于rewrite阶段,而rewrite指令处于access阶段,因此return的优先级是高于ngx_limit_req访问频率限制的。

出处:头条号 @木讷大叔爱运维

meiguo.com 发布人签名/座右铭谁还没年轻过呢?呵呵呵
大家都在看
楼主新近贴
回复/评论列表
默认   热门   正序   倒序
meiguo.com 创始人

emotion

9   2020-07-04 16:43:53  回复

回复/评论:Nginx配置 ~ 泛域名http默认跳转https

暂无用户组 升级
退出
等级:0级
美果:
美过
精华推荐
  1. 相差3米!星舰试飞“精准溅落”展现技术突破
  2. 疯狂打压华人精英,勒令华人CEO辞职… 川普政府的致命错误?
  3. 华人科学家身陷“杀猪盘”,短短数月就被掏光250万美元积蓄!
  4. YouTube“反诈频道”助力警方,破获6500万美元诈骗案!
  5. 工作日没空?周末集中运动同样有益健康!
  6. 白宫开通了TikTok 账号,传播政策信息!
  7. 先交押金!美国重启了“签证保证金”试点计划
  8. 中国🇨🇳开始质疑英伟达芯片“存后门”
  9. 美国华裔二代坦言:中国发展现状,让父辈移民后悔了!
  10. 美国年轻人的“中国观”悄然转变
  11. 苹果投资了6000亿美元,加速“美国制造”计划!
  12. 植物油更健康?动物油脂摄入或将加速肿瘤生长
  13. 不输常春藤!盘点学费低、薪资高的25所美国公立大学
  14. 香港永居 vs 美国国籍:身份选择背后的生活考量
  15. 中国留学生在入境美国时遭遇驱逐,禁止五年内再入境!
  16. 美国“真放宽”了对中国留学生的入境政策?
  17. 中国留学生在入境美国时遭遇盘查,中方大使馆发布安全提醒!
  18. 休斯顿机场“小黑屋内的铝箔纸”:中国留学生遭遇遣返的36小时煎熬
  19. 全美房地产市场在趋向中性,区域分化明显!
  20. 华人留学生“索赔1亿美元控诉”大学期间的农药伤害
  21. 马斯克“xAI”起诉前工程师“泄露机密”
  22. 房子属于你,但你得付费受他们管着!关于美国HOA
  23. SpaceX的星舰“第十次试飞”成功了
  24. 加州州长竟然模仿川普总统的风格发帖,粉丝数和支持率“都涨了”!
  25. 持中国大陆护照在申请美国签证的注意事项更新(2025年8月版本)
  26. 川普政府的对华政策突然改变了?
  27. 川普总统的态度突变,暗示乌克兰应该反击俄罗斯本土?
  28. 敌友即友?马斯克和扎克伯格开始接触,图谋合伙收购OpenAI?
  29. 选择西雅图、圣地亚哥还是洛杉矶?全面对比“三城生活”
  30. 2025年度的美国公立高中排名发布,咱只关注前三!
  31. 川普总统“访华表态”继续反复
  32. ICE抓捕的非法移民中,中国人数量激增?
  33. 麻省理工学院发布AI学习平台“MIT Learn”
  34. 为激励员工,OpenAI打算豪掷96亿美元!
  35. 蔡文胜的2025大动作之五,香港投资版图在持续扩张!
  36. 川普家族竟然靠它狂揽45亿美金!操盘手是赵长鹏?

美国动态 美果搜索

Your IP: 216.73.216.105, 2025-09-08 00:58:15

Processed in 0.08619 second(s)

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
已有0次打赏
(9) 分享
分享
取消