收藏文章 楼主
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. 盖茨列出了10项改变世界的技术名单
  2. 判刑15年!发币ICO的定性为诈骗
  3. AI半壁江山是中国人?黄仁勋“敲警钟”:美国须觉醒!
  4. 中国的中产家庭,送孩子赴美留学就是鸡肋之举?
  5. 在美国生活半年,分享一下可能让人失望的真话!
  6. 美国对华为“HarmonyOS”采取行动,引发科技领域的新争议!
  7. “240小时免签”和“离境退税”叠加组合,让美国人感受到了中国人的聪明智慧!
  8. 华人科学家再次遭遇系统性排查,75%留美学者“萌生去意”!
  9. “蜗居”纽约的中国穷人:男女同住,毫无私隐… 却坚持不肯回国
  10. 中方意识到谈判时机已至?迅速派出“王牌代表应邀”和美国财长会面了
  11. 嘴唇经常干裂起皮,或许并非缺水!
  12. 马斯克的丑闻?和多名女性有染,有上百个孩子?
  13. 中美各自取消91%关税!为防🇺🇸川普政府反悔,🇨🇳重申关键问题!
  14. 让人意外!股神【巴菲特】突然宣布退休
  15. 【读懂AI Agent】MetaGPT、Mila、斯坦福、耶鲁、谷歌的合作论文
  16. 美国联邦调查局警示:“新型医疗保险”骗局泛滥
  17. 在量子世界“玩儿游戏”?物理学家展示了量子计算机的新前景
  18. 美国驻华大使馆:“赴美生子”一律拒签
  19. 全球AI人才的争夺战白热化,顶尖研究员成为了科技巨头争夺焦点
  20. 美国人在凌晨三点排队,不为苹果手机… 竟然是为中国毛绒玩具“拉布布”?
  21. 在美国生活半年,分享几句扎心实话!
  22. 出乎全世界意料,中美两国的“2025日内瓦谈判”太亲密了吧?
  23. 贸易战的结局已定?中美两国“各退一步”?
  24. 美国企业在强化回归办公室的工作要求
  25. 中美博弈2.0了?川普政府“百日执政”,撤回对华善意!
  26. 美国政府“管不着”加州?纽森州长说继续做中国生意!
  27. 英国2岁男童竟然刷新了门萨俱乐部“最年轻男性”会员纪录
  28. 美国物价到底贵不贵?近距离窥视一下佛罗里达州的中产家庭的日常消费
  29. 川普政府的关税政策或将加速中国崛起,助力中国成为全球的经济主导力量!
  30. 中美通话的内容简短,但意味深长!
  31. 在美国,千万别做的这些事盘点!
  32. 近半数中国小包裹的接收人是贫困美国百姓?
  33. 哪些关键技术决定了如今大模型格局?Google的首席科学家“万字演讲”回顾AI发展的十年
  34. 金星地壳似乎剧烈变化了,NASA即将启动新任务探索求证!
  35. 中美贸易战的谈判再起,稀土贸易成为焦点
  36. 美国的州排名出炉,犹他州连续三年领先!

美国动态 美果搜索

Your IP: 216.73.216.114, 2025-06-01 20:17:39

Processed in 1.38395 second(s)

头像

用户名:

粉丝数:

签名:

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