收藏文章 楼主
Nginx配置 ~ 泛域名http默认跳转https
网友【Ranger】于【太平洋时间 2020-07-04 09:43:53】分享在【时代发展的印记】版块    5219    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 09:43:53  回复

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

暂无用户组 升级
退出
等级:0级
美果:
美过
精华推荐
  1. dream away ≠ 失去梦想
  2. 动作大片《Old Guard ~ 永生守卫》被提名为“年度爽片”
  3. 为何🇨🇳休斯顿总领馆遭遇“🇺🇸政府关门令”?当年首个总领馆为何选址休斯顿?
  4. 用英文怼过去“别废话”的几种表达
  5. 眼下时局,留学美国还适合中国孩子吗?
  6. 听说了吧?李登辉竟然死了,没等到“祖国统一”就死了!
  7. 做咖啡☕拉花失败的原因找到了!初学牛奶咖啡拉花时,最易忽略的知识点!
  8. 只追美剧的都来追中国剧了!《三十而已》究竟火到了什么程度?
  9. 美东乡村别墅,一起欣赏下!
  10. 中国外交部汪文斌:美国政府要求中方关闭🇨🇳驻休斯顿总领馆,中方将对等反击!
  11. 中国人视角是这样看美国的
  12. 美国亚裔家庭的后代要成“人中精”要付出的血泪汗
  13. 特朗普政府的“昔日红人”咋都不见了?谁最惨?
  14. 奥巴马如何成就了特朗普的?权威分析来了!
  15. 出国留学为了啥?中国孩子是否还应该出国留学?
  16. 从移民史,看美国国力的兴衰史!
  17. 伊万卡在街头当志愿者被认出:身着白上衣、紧身裤,戴着花口罩!
  18. “中美战争”爆发可能性的靠谱分析
  19. 中美关系“旧秩序”崩塌原由
  20. 纵观“一直以来”的美国与中国
  21. 2020年人口普查:美国人口3.3亿
  22. 胡锡进点赞“中国关闭美国驻成都领馆”
  23. 准备好了接受新时代吗?
  24. 北京宝妈带娃在国外旅居近两年,最后选择了回海淀上学!

美国动态 站内搜索 美果转盘 美果商店

Your IP: 75.101.173.236, 2020-08-05 03:29:33

Processed in 0.62654 second(s)

头像

用户名:

粉丝数:

签名:

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