Cloudflare Flexible SSL重定向循环解决

tech

This article was last updated on <span id="expire-date"></span> days ago, the information described in the article may be outdated.

以前的主机商块到期了,加上之前经常莫名其妙的打不开,于是决定换一家。

思来想去最终还是选择了阿里云那个新推出的轻量应用服务器,一咬牙花了288买了一年,用起来确实比我国内那个用来听歌的1M小水管舒服许多。

由于服务器在香港,为了稍微提升一下体验,正好也不想在dnspod解析了,就干脆全套一换:

  1. 把域名从狗爹转移到了namesilo,续费一年省了不少钱(狗爹真的坑)
  2. 把解析从dnspod迁移到cloudflare,群里朋友反映的速度还可以,我这边cloudflare才开始出现莫名其妙的问题,下面解释
  3. 把主机商从原来的**壳换到了套路云

自己搭建的过程基本也就是参考网上的教程,这次选择的是debian系统,感觉用起来还挺舒服的,听群友说这个系统比较省内存,256M也能跑的很欢。

Cloudflare解析的功能即使是免费版的仍然很强大,但是对于新手来说并不很友好,我说一说我迁移过程遇到的几个坑吧:

  • 坑1:才开始迁移不知道该选择什么样的加密方式(在Crypto - SSL选项中)

由于懒得配置nginx的SSL证书,所以才开始就打算用cloudflare的直接代替,但是由于没有经验,听网上胡说选成了 Full 模式,导致网站直接打不开,宕机了将近2个小时。

这里说一下几个模式都是什么意思:

  1. Off: 字面意思,直接关闭,cloudflare不会对你的网站生成SSL证书。访问者是否走SSL取决于你的服务器是否开启SSL。
  2. Flexible: 意思是你的服务器没有SSL,cloudflare与你的服务器通讯会走HTTP,但是由于cloudflare直接代理了你所有的访问,默认会使用他们家生成的证书。
  3. Full: 意思是Cloudflare与你的服务器之间通讯也走HTTPS,但是不要求你的服务器有可信赖的证书(自己生成一个也可以)。
  4. Full strict: 和上面一样,但是要求你的服务器上也部署了可信赖的证书(相当于两个通讯都是可信的HTTPS)。

所以如果像我这样懒得配置 Nginx HTTPS 的同学可以直接选择 Flexible 模式,简单又好用。

  • 坑2:当 Flexible 配置之后导致后台登录无限重定向

这个问题才开始也是让我头大的不行。

问题的主要原因是:你的博客地址选择了 https 模式(就是后台-设置-常规的 Wordpress 地址),但是你的服务器没有开启 HTTPS(所以我们选择了Flexible),当你登录时就会出现这样的情况:

  1. Cloudflare 为了保证你能正常的提交登陆表单,对.php结尾的文件默认不缓存,你的登陆请求被 Cloudflare 发回源到你的服务器处理 (302)
  2. 你的服务器跟 Cloudflare 用HTTP通讯之后,发现你是用 http 进行请求的,于是请求到 https 版本(302)
  3. 由于你所有的 https 流量都是经过 Cloudflare 的,它对你的登陆请求就又一次转发到源服务器 (302)
  4. 如此往复,形成了重定向循环…

解决方法有这么几种:

  1. 去wp数据库 - wp_options - site_url 改成不带 https 版本的;或者在 wp-config.php 中强制重新定义 siteurl (网上有很多教程,这里不再赘述,有需要解释请留言说明)
  2. 用ftp或者scp之类的工具上传这个插件:https://wordpress.org/plugins/cloudflare-flexible-ssl/ 之后就可以打开。
  3. 勤快的同学可以直接搞个证书,开 SSL 的 Full 模式认证

坑就暂时发现这么多。自己搭确实蛮累的。

前天先把博客所有404的图片链接全部都手工去除了,现在老帖子基本已经没有图片了(wp的升级不兼容性/之前迁移时候图片的编码问题,详情:https://init.blog/archives/1508),花了一下午时间。

昨天早上问同学东拼西凑在支付鸨上搞到了足够的钱。

昨晚买了服务器之后先拔了阿里的看门狗系统,折腾了一阵,配置 iptables 折腾一阵,各种包都缺,相互依赖,装完 nginx mysql php-fpm 之后就很累了,睡觉打算早上起来之后再继续。

中午搭完之后写文章突然发现没法保存,以为是数据库用户权限问题,后来检查之后并不是,多方查找无果,只得重头再来。

下午博客又莫名其妙的无法登录(经典的reauth问题),折腾很久之后还是不行,最后实在没办法回滚了快照(幸好早上配置完成之后打了快照)。

希望明天别再出问题了,折腾。

马上就要过年了,这里考试还没结束,看到俄罗斯人就烦,天气也是一直阴天(中间晴的那天出去玩了,心情就很好)。

想家。

Author: 桂小方

Permalink: https://init.blog/1607/

文章许可协议:

如果你觉得文章对你有帮助,可以 支持我

Comments