收藏文章 楼主
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. 美国青少年“67”流行语的现象引关注
  2. 中美AI竞争的新格局已定?
  3. 华人购房遭遇国籍歧视,法院裁决后依然隐忧犹存!
  4. ICE启动了在社交媒体的全天候监控项目
  5. 联邦法院驳回了川普政府的“出生公民权”行政令
  6. 美国的房地产市场显现了矛盾信号
  7. 佛罗里达的一名中学生在AI提问,然后被捕了!
  8. 美国移民局(ICE)新提案打算限制福利使用,有记录者可能影响绿卡申请!
  9. 中美两国元首在釜山会晤:就关税、大豆和稀土已经达成共识
  10. 学习英语12年后,终于实现了“美国梦”!
  11. 美国“H-1B”签证新规:在境内的申请人,免缴10万美元费用!
  12. 黄仁勋警示川普政府,再不开放“对华AI芯片出口”就来不及啦!
  13. 恢复或加入?重获中国国籍的路径比较
  14. 中美航班“绕行俄罗斯领空”政策引关注
  15. 川普政府“双失利”?
  16. MIT稳居了CS榜首!美国大学的最新排名出炉
  17. 马斯克的模块化生产技术在革新汽车行业
  18. 川普政府再次出奇招!拒绝所有胖子的移民申请?
  19. 中美因为“稀土管制”引发的贸易摩擦升级了
  20. 中美稀土博弈,美国政策在急转直下!
  21. 谷歌的科学家已经连续两年摘得了诺贝尔奖
  22. AWS最大区域故障,带崩多项服务!
  23. 川普总统宣布加沙战争结束,峰会聚焦“中东和平”!
  24. 川普总统签署了备忘录,贩毒集团成为“国家之敌”!
  25. 美国司法部起诉了柬埔寨“电信诈骗集团”的头目
  26. 中国已经全额缴纳了联合国会费,联合国的财政危机缓解!
  27. 700万人参与了反川普集会?
  28. 中美贸易的争端升级,中国实施“长臂管辖”颁布3项针对性措施!
  29. 全球高等教育的新趋势:留学生求学地“多元化”
  30. 美国在AI竞争中失利了?阿里千问模型在全球领先
  31. 一美分硬币“Penny”铸造历史正式终结
  32. 2026年版的“公共负担”新规复活,华人家庭遭遇精准打击!
  33. 美国政府批准了对台3.3亿美元的军售
  34. 中美经贸磋商“展现战略对称”新态势
  35. 人类史上“最贵CEO”诞生!马斯克的“万亿薪酬”背后
  36. 45岁后“人生黄金期”是认知和创造力的新高峰

美国动态 美果搜索

Your IP: 216.73.216.15, 2025-12-05 01:31:01

Processed in 0.02125 second(s)

头像

用户名:

粉丝数:

签名:

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