Cloudways怎么用免费Cloudflare?DNS、SSL模式、缓存设置和常见报错

蜗牛大人Cloudways主机教程

本文含推广链接:通过此链接购买,本站可获得佣金,不影响你的价格。了解详情

很多外贸网站的域名都托管在Cloudflare上,用它的免费CDN和防护。网站放在Cloudways上,同样可以接入免费的Cloudflare,但有几个地方和普通主机不太一样,顺序搞错了,就会遇到“重定向次数过多”、证书报错这类问题。

本文讲的是免费版的Cloudflare。Cloudways自己还有一个付费的Cloudflare Enterprise插件(每个域名每月$4.99起),功能更多、设置更简单,两者的区别见《Cloudways网站怎么加速?》。两者二选一,不能同时用。

免费Cloudflare能做什么?

  • DNS解析:速度快,修改记录生效也快;
  • CDN:缓存图片、CSS、JS这些静态文件,海外访客从最近的节点获取;
  • 安全防护:隐藏服务器的真实IP,挡住一部分恶意流量和攻击;
  • 免费SSL:访客和Cloudflare之间的HTTPS。

免费版默认不缓存网页本身(HTML),所以对TTFB的改善有限,主要是加快静态文件的加载。想缓存整个页面,要么用Cloudflare Enterprise插件,要么自己设置缓存规则(下文会讲风险)。

CDN的原理见《什么是CDN?》。

第一步:把域名接入Cloudflare

如果域名还没有接入Cloudflare:

  1. 注册Cloudflare账号,点击「添加域」,输入你的域名,选择Free计划;
  2. Cloudflare会扫描域名现有的DNS记录,核对一遍,特别是邮箱相关的MX、TXT记录不要漏掉;
  3. 到域名注册商那里,把域名的Nameserver改成Cloudflare给的两个地址;
  4. 等Cloudflare显示域名已生效(一般几分钟到几小时)。

Nameserver是什么、怎么改,见《Nameserver是什么?》。

第二步:添加DNS记录

在Cloudflare的「DNS」→「记录」里,添加网站的解析:

类型名称内容代理状态
A@Cloudways服务器的Public IP先设为“仅DNS”(灰色云朵)
AwwwCloudways服务器的Public IP先设为“仅DNS”(灰色云朵)

服务器的IP在Cloudways服务器的「Master Credentials」或服务器列表里可以看到。

为什么先设为灰色? 因为下一步要在Cloudways上安装Let's Encrypt证书,Cloudways建议安装证书时先暂停Cloudflare的代理,避免验证失败。证书装好之后再打开代理。

其他记录的代理状态:

  • MX记录不能开代理,Cloudflare也不允许给MX开代理;
  • 邮箱用到的mail、autodiscover等记录,以及各种验证用的TXT、CNAME记录,一律用“仅DNS”,开了代理邮箱会收发不了;
  • 只有网站本身的@和www需要开代理。

邮箱的DNS记录见《Cloudways怎么用域名邮箱?》。

第三步:在Cloudways安装SSL证书

  1. 确认上一步的A记录已经生效(可以ping一下域名,看返回的是不是服务器IP);
  2. 在Cloudways网站的「Domain Management」里添加域名,设为主域名;
  3. 在网站的「SSL Certificate」里选择Let's Encrypt,填写邮箱和域名(example.com和www.example.com),点击安装;
  4. 安装成功后,打开「Auto Renewal」(自动续期);
  5. 在网站的设置里开启HTTPS跳转。

详细步骤见《Cloudways建站教程》里绑定域名和安装SSL的部分。

第四步:打开代理,设置SSL模式

证书装好之后:

  1. 回到Cloudflare的DNS记录,把@和www两条A记录改成“已代理”(橙色云朵);
  2. 进入Cloudflare的「SSL/TLS」→「概述」,把加密模式设为「完全(严格)」(Full (strict));
  3. 在Cloudflare清除一次缓存。

SSL模式为什么必须选“完全(严格)”?

Cloudflare的SSL模式决定了Cloudflare和你的服务器之间怎么连接:

模式Cloudflare到服务器在Cloudways上
灵活(Flexible)用HTTP不要用,会导致“重定向次数过多”
完全(Full)用HTTPS,不验证证书能用,但不够安全
完全(严格)(Full (strict))用HTTPS,验证证书推荐

选“灵活”时,Cloudflare用HTTP访问你的服务器,而Cloudways开启了HTTPS跳转,又把请求跳回HTTPS,Cloudflare再用HTTP去访问……就这样无限循环,浏览器显示“重定向次数过多”。

服务器上已经装了有效的Let's Encrypt证书,直接用“完全(严格)”就可以。

另一种做法:Cloudflare源服务器证书

也可以不用Let's Encrypt,改用Cloudflare免费签发的源服务器证书(Origin Certificate),在Cloudways的「SSL Certificate」里以自定义证书(Custom SSL)的方式安装。好处是有效期很长,不用担心续期。

但这种证书只有Cloudflare认可。一旦关掉代理(变成灰色云朵)或者不用Cloudflare了,浏览器会直接报证书不受信任。所以一般网站用Let's Encrypt更省心。

第五步:缓存设置

默认设置就够用

Cloudflare免费版默认缓存静态文件,不缓存HTML,对WordPress来说是安全的设置。Cloudways服务器上已经有Breeze和Varnish做页面缓存,两者配合即可。

改了网站,前台没变化?

Breeze不能自动清除免费Cloudflare的缓存(Breeze的Cloudflare自动清除功能是给Cloudflare Enterprise插件用的)。所以换了图片、改了CSS之后,前台没变化的话:

  1. 在WordPress里清除Breeze缓存;
  2. 到Cloudflare的「缓存」→「配置」里点击「清除所有内容」(Purge Everything),或者只清除改动的文件网址;
  3. 清除浏览器缓存后再看。

做较大改动时,也可以先在Cloudflare的「概述」页面开启「开发模式」(Development Mode),临时跳过缓存,改完再关掉。

不建议随便开“缓存所有内容”

网上有一些教程教你用缓存规则让Cloudflare缓存所有内容(包括HTML),这样确实能降低TTFB,但风险也大:

  • WordPress后台、购物车、结账、登录页面被缓存,会出现别人的购物车、登录状态错乱;
  • 更新文章之后,访客很久都看不到新内容。

一定要做的话,要把/wp-admin、/wp-login.php、购物车、结账、我的账户等页面排除,并且对带登录Cookie的请求跳过缓存。对大多数网站来说,每月$4.99的Cloudflare Enterprise插件是更省心的整页缓存方案,它会随WordPress更新自动清除缓存。

常见报错和解决方法

“重定向次数过多”(ERR_TOO_MANY_REDIRECTS)

几乎都是因为Cloudflare的SSL模式选了“灵活”。改成“完全(严格)”,清除Cloudflare缓存和浏览器缓存。

521错误(Web server is down)

Cloudflare连不上你的服务器。检查Cloudways的服务器是否在运行、网站是否正常;如果在服务器上设置过防火墙或IP限制,确认没有挡住Cloudflare的IP。

522错误(Connection timed out)

Cloudflare连接服务器超时。常见原因是A记录填错了IP(比如填了旧主机的IP)、服务器负载太高没有响应。先核对A记录,再看Cloudways的「Monitoring」里服务器的资源情况。

525错误(SSL handshake failed)

Cloudflare和服务器之间的SSL握手失败,一般是服务器上没有装SSL证书,或者证书安装有问题。按上面的第三步重新安装证书。

526错误(Invalid SSL certificate)

SSL模式是“完全(严格)”,但服务器上的证书无效:过期了、域名不匹配,或者是自签名证书。检查Cloudways上的证书状态,重新安装或续期。

收不到邮件

检查MX记录是否还在、邮箱相关的记录是否被开了代理。接入Cloudflare时漏掉了MX记录,是最常见的原因。

WordPress后台或者表单提交被拦截

Cloudflare的安全设置(比如机器人防护、安全级别)有时会误拦正常请求。到Cloudflare的「安全性」→「事件」里查看被拦截的记录,针对性地调整规则。

常见问题

Let's Encrypt证书开了Cloudflare代理之后能自动续期吗?

一般可以正常自动续期。万一续期失败,临时把@和www改成灰色云朵,在Cloudways上手动续期,成功后再改回橙色。

用了Cloudflare,还需要Cloudways的Cloudflare Enterprise插件吗?

二选一。免费Cloudflare对大多数网站已经够用;客户遍布多个国家、对速度要求高的网站,可以考虑Enterprise插件。从免费Cloudflare切换到Enterprise插件之前,要先把DNS记录的代理关掉。

Cloudflare要开“始终使用HTTPS”吗?

可以开,和Cloudways的HTTPS跳转不冲突,前提是SSL模式是“完全”或“完全(严格)”。

开了Cloudflare,网站还是慢?

免费版不缓存HTML,TTFB主要还是取决于服务器和Breeze、Varnish的页面缓存。按《Cloudways网站怎么加速?》检查服务器层面的设置。

总结

Cloudways接入免费Cloudflare的顺序是:

  1. 域名接入Cloudflare,核对好MX等邮箱记录;
  2. 添加@和www的A记录,先用灰色云朵;
  3. 在Cloudways安装Let's Encrypt证书,开启HTTPS跳转;
  4. 把A记录改成橙色云朵,SSL模式设为“完全(严格)”。

记住两点:SSL模式不要选“灵活”;Breeze不会自动清除免费Cloudflare的缓存,改了网站要手动清除。

更多Cloudways的使用教程,可以查看《Cloudways主机教程汇总》。

文章版权归作者所有,转载请注明出处:https://woniune.com/posts/cloudways-cloudflare-setup/
上一篇Cloudways账单怎么看?扣费比预想的多,常见的7个原因

相关推荐