Cloudways是一家知名的服务器托管平台。我们可以在它上面选购DigitalOcean、Vultr、Lindoe、AWS、Google Cloud等5家大厂商的服务器。
本文介绍的是Cloudways的VPS主机;不过它家也有更高级的Cloudways Autonomous套餐——自动负载平衡,即便是流量突发暴增,也能够轻松应付,而不会宕机,只是费用很贵——对于电商站倒是有用,比如应对品牌活动日或者某些视频突然爆了等短时间内涌进大量访客的场景。
为什么选择Cloudways?
理由很简单:操作简单、运行稳定、性价比高、服务好。
①操作方面:Cloudways的操作面板很清晰,适合新手上手;
②稳定性方面:我公司的C端网站在cloudways上稳定运行了将近3年,亲测没发现服务器运行方面有啥问题;
③性价比方面:服务器配置良好、客服水平良好、价格与同类主机相比较低;
④安全性方面:集成 Imunify360 服务器端防火墙,替代了Wordfence等防护插件,网站性能更佳。
先来说配置。Cloudways是托管型VPS,性能要比Hostinger等托管型共享主机(Shared Host)要好许多。
VPS与共享主机之间的区别就好比公寓和群租房。
VPS算是我们私有的虚拟电脑,只会放我们自己的东西,100%独享所购买套餐中的内存、CPU等服务器资源;而共享主机则是一个服务器上塞了好多人的网站,大家挤在一起,共享所有服务器资源——当其中某个网站占用的资源过大之后,便会影响其它网站的正常运行。而且,低价共享主机超售的情况要比VPS多得多(不然怎么可能做到低价又无限网站数量)。。。所以VPS的性能要比廉价共享主机好一大截。
另一方面,VPS会分配独立IP,共享主机基本都是共享IP。对网站SEO来说,独立IP相对共享IP会好一点,不会受同一个IP下其他人的恶意网站的牵连。
再来说服务。Cloudways有7X24小时在线人工客服,咨询问题基本一分钟内就有回复,可以帮忙执行一些服务器操作。特别是万一遇到服务器出现紧急状况,在线客服的作用特别大。
最后说说价格。Cloudways 1G1H VPS的最低价格套餐是$11/月,对比类似档次的Kinsta($30/月)、WP Engine($20/月),要便宜许多。点击查看Cloudways最新定价。
并且,cloudways的付费方案是按使用时长计费的(用多长时间支付多长时间的费用),并不像其它主机一样要包月或包年。一般在使用后的下个月月初结算支付上个月的费用。用大白话来解释:在用了一段时间后,咱们可能因业务不理想准备关闭网站,在Cloudways中,咱们可以随时删除服务器,这时系统就会停止计费,下个月收到的账单金额只会是按当月实际使用天数的计费。这种收费方案要比那种一次性支付一年或是两三年的方案要好很多,咱们随时可以止损,而不是白白打水漂。
再来谈谈非托管的VPS裸机,确实要比托管型VPS便宜,但是技术水平一般的就不用去考虑了,不光得配置各种运行环境,还得自己负责日常维护。一旦出现运行故障,不一定能快速解决,很可能会对业务产生重大损害。而像Cloudways这种托管型VPS,所有环境、规则全都按最优方案配置好了,咱们省心很多,出问题找在线客服解决,总比自己搞半天还不一定能解决问题要强得多。
就拿我自己的亲身经历来举例。以前犯过一次错误:看了某个提升网站性能的教程后,开心地在后台改动了PHP配置文件的代码。原以为网站速度要起飞,没想到是原地爆炸——改动后网站马上就进不去了,更要命的是这还是个C端网站,而且是大晚上十一二点,正是美国客户开始活跃的时间;那时候我还不会SFTP工具,要是自己临时找方案并且现学现卖估计得个把个小时,那天晚上肯定是睡不好觉了,销售额也可能会少大几百美金。瞬间人麻了…幸亏想起来Cloudways有7/24小时在线客服,马上找到客服告诉她我刚才所做的操作,她很快便在后台帮我重新恢复了代码,网站马上就活过来了,我悬着的心也放下了。从那次以后,我就觉得多花点钱以合理价格购买服务是相当值得的!有时候舍不得花那点小钱,真遇到麻烦事了,损失会大得多。
Cloudways的技术栈
选择托管服务商,我们不光要看服务器硬件配置,还要关注所采用的技术栈,因为将会与我们的网站缓存配置方案、插件组合方案、Debug等有重大关系。Cloudways采用的技术栈介绍详见官方原文。这里我要特别指出的是:它采用了 Varnish + Nginx + Apache 3层架构。3者的关系是这样的:Varnish负责缓存、Nginx负责处理静态文件(CSS、JS、图片等)、Apache负责处理动态内容。这样架构的好处是可以使用一些需要改动服务器配置的插件——这些插件能够自动写入规则到.htaccess(Apache),而 Nginx 通常需要我们手动配置。
各堆栈之间的响应逻辑如下:
Varnish 缓存: 首先,用户请求会到达 Varnish 缓存。如果 Varnish 缓存命中,则直接返回缓存的内容,响应不会进一步传递到 Nginx 或 Apache。
Nginx 反向代理: 如果 Varnish 缓存未命中,请求会被传递给 Nginx。Nginx 可能会根据其配置执行一些处理,如静态文件的直接服务或将请求传递给后端 Apache 服务器。
Apache 服务器: 最后,Nginx 将请求传递给 Apache,Apache 处理动态内容(提取WP缓存插件的已缓存内容或直接生成)并生成响应。这个响应再经过 Nginx 和 Varnish 返回给客户端。
WP页面缓存插件:Apache命中缓存插件的已有页面缓存,直接返回响应;假如没有命中缓存插件的页面缓存,则由PHP重新生成页面动态内容,交付给缓存插件和Apache,最后由Apache返回响应。在没命中缓存插件的缓存时,Apache获取的内容可能直接来自于PHP,也可能在缓存插件生成缓存后来自缓存插件。
关于缓存更详细的介绍,详见:缓存是什么?— 提升加载速度的6种缓存类型
注册账号
点击下方链接,直达Cloudways注册页面,提供3天免费试用时间。注册时填写优惠码 QinBL
,享前2个月8折优惠~

账号认证
注册过程中,系统会在后台检测我们当前的注册环境——我们ip在中国或是使用vpn,很可能会触发风控——所以很多时候,系统会要求我们提供额外的资料,经过官方工作人员人工验证后才能激活账户。其实只要确认我们是真实用户,就会通过验证的。
出现下图这个提示就代表需要提交资料。

验证方法1:
点SUBMIT DETAILS
来到信息填写页面。按实际情况填写后提交。

假如你还没有注册域名,可以参考我这两篇与域名注册、解析相关的文章。注册域名后填写即可。填写到social profile url那里时,假如没有相关账号,那么只需随便填上一个链接(因为表单不允许留空…),比如Linkedin对应填 linkedin.com/none 。然后在下方描述框内说明原因即可。提交后大约1个工作日左右就会有邮件回复了。描述框的内容我也为大家准备了一份:
Hi team,
I found out about Cloudways from a blog and I want to use your servers for my website (你的域名.com). It’s a website about xxx(产品、行业等). Thanks!(As I don’t have a Linkedin account, I used a placeholder.)
验证方法2:
直接用刚才注册的邮箱发邮件到 [email protected],申请验证我们的账号。你将会在1-2工作日内会收到邮件回复(通常是几个小时内就能收到)。我提供一个邮件模板:
Hi team,
When I registered my account, the webpage prompted me to verify my identity. Could you please help me with this? Thank you!
这个方法可能会要求咱们提供一些身份证明资料(驾照或身份证、电话号码等),我们只要拍个照(证件号可以部分打码)发给他们,很快就能通过验证。【Cloudways在国外挺知名的,泄露我们个人信息的概率很小,这一点基本可以放心。】
完成验证
当验证通过后,会收到下图这样一封邮件让我们激活账号的邮件。点击邮件中的链接就能直接进入账号后台。

选择服务器配置
登录账号后,我们会直接来到服务器选择界面。大多数B端网站类似于静态网站,所以对服务器要求没那么高,选择低端一点的配置即可;C端网站使用woocommerce,动态回源请求多,内存占用高,加购、结账等操作对响应速度的要求较高,所以C端网站对服务器的要求会高一些。
假如你对这方面不懂,按照我的推荐来:
B端网站——通常选择1G1H的服务器就够,推荐选择DigitalOcean的Premium套餐;
C端网站——通常初期2G1H的服务器起步(主吃内存),推荐选择Vultr的High Frequency套餐;
(Premium相对Standard使用了更好的CPU和NVMe固态硬盘;High Frequency相对Standard使用了高频CPU、更好的NVMe固态硬盘)
服务器的位置Location选择靠近你目标市场的位置,那么当地访问速度会快一些。
顶部的默认安装系统保持默认的wordpress即可;其它的application名、服务器名、项目名等都填自己可识别的名称就好。在cloudways中,一个服务器中可以安装很多个application,一个app基本对应一个网站,因此网站就可以视为app。

选择好配置后,点击下方的免费试用按钮即可。
然后会来到服务器列表界面,服务器右侧会显示安装网站所需的时间。耐心等几分钟就好。
我们也可以趁着这会儿功夫按照上方提示栏的提示,先认证下咱们的手机号码。

随着业务发展,我们创建了第一个网站后可能出于业务需求还需要在同一个服务器中建其它网站,那么下面我也写一下非注册阶段创建网站的步骤。
创建网站
鼠标移动到界面左侧的第二个图标,在弹出的界面上选择My Applications
进入app界面,点击右上角的Add Application
按钮。

在弹出窗口中选择已有的服务器,点击添加。

选择你要安装的应用。我们就选最上方的WordPress即可。起一个容易识别的名称。点击安装即可。

会跳转到服务器界面,大约等2分钟WP就能安装完成。

然后点小地球图标找到刚新建的app,进入网站的详情面板。
左侧是网站后台的账号密码,右侧是数据库的账号密码。

点击Admin Panel下方的url即可进入网站登录页面,复制网站账号密码即可登录到网站后台。

假如你对WordPress的后台、操作并不熟悉,可以参照我这篇WordPress新手教程慢慢学习。
添加域名
到app的Domain Management
界面,点击Add Domain
按钮。

填入域名。下面的框一般不要勾选,除非你是要用到multisite。

将刚添加的domain设置为主要域名:

此时依然是无法用刚添加的网址正常访问网站的,还需要到DNS中设置网站A记录(下图以Cloudflare为例)。
设置A记录:

过一会儿网站就可以用网址访问了,但是你会发现浏览器会提示风险,因为我们还需要添加SSL安全证书。SSL证书主要用于浏览器与服务器之间的加密传输,每个网站都需要有这个证书,否则就会在访问时出现风险警告。
添加SSL
Cloudways提供Let’s Encrypt免费证书以及自定义证书两种。假如咱们使用了cloudflare CDN(开启了橙色小云朵),那么建议使用cloudflare自家提供的SSL证书,可以减少浏览器因SSL错误出现安全风险警告的情况,降低访客无法成功访问网站的概率。
Let’s Encrypt证书
此证书有效期3个月,cloudways能自动续期。
在SSL Certificate
界面,按照下图指示选择免费的Let’s Encrypt,填入邮箱,填入域名,并勾选Apply Wildcard
。

在DNS中按照上图中方框段落的提示添加认证记录,复制粘贴过去即可。以cloudflare为例:

添加的这条CNAME记录不要删除,否则之后Let’s Encrypt SSL证书无法自动续期!!!
这时候回到cloudways的SSL认证页面大概率无法马上Verify DNS的,一般需要等待5-10分钟,等DNS服务商在全球各地的DNS服务器传播这条记录后才能完成认证。
我们可以到 https://www.whatsmydns.net/ 这个网站查询DNS传播情况。搜索框填入_acme-challenge.你的网址,旁边的下拉框选择CNAME。当大部分都变为绿色的时候,大概率就能在cloudways中完成DNS认证。

完成认证后,点击旁边的Install Certificate
按钮,完成SSL证书安装。大约2分钟左右咱们便可以在浏览器中用域名正常访问网站了。
Cloudflare证书
此证书有效期最长15年。
在cloudflare的 SSL/TLS - 源服务器
界面点击创建证书按钮。

在详细设置界面保持默认设置,无需更改,创建即可。

将源证书和私钥复制到Cloudways中。

在Cloudways的 SSL Certificate
界面选择 Upload Custom SSL and Key file(s) 。

粘贴Cloudflare中生成的源证书和私钥,点击submit
按钮即可。

接下来,在 SSL/TLS - 概述
中将cloudflare中的SSL/TLS加密模式改成 完全(严格)。


迁移网站到Cloudways
也许你在其他主机商那里已经有了一个网站,可能因为访问速度不佳或是其它原因,想要将主机更换为Cloudways。其实也很简单的,只要将原始的网站用插件迁移过来就好。Cloudways有官方的迁移插件。
第1步,按照文章上方创建网站的步骤,先到cloudways管理面板中创建一个全新的wordpress app,作为迁移终点站。并且在这个app的Access Details
选项卡中新建一个SFTP账号密码。

用户名、密码自己随便设置即可。在下面步骤中会用到SFTP用户名和密码。
第2步,到其它主机商现有网站的WP应用商店搜索Cloudways,安装Cloudways WordPress Migrator插件并激活。同时,请禁用双方网站上的缓存插件(并清理缓存)、安全防护插件、其它优化插件、CDN以及双方服务器的缓存(并清理缓存)、防火墙等,避免迁移过程发生错误。

第3步,设置迁移插件。
1. 填写邮箱。
只是用来接收迁移的通知邮件而已,随便填一个即可。

2. 填写在第一步中创建的新wordpress的网址、IP、Database Name、SFTP等信息。这些在Access Details
选项卡中都能找到。


3. 下面源站的这三个选项一般保持默认即可。

4.等待迁移系统验证咱们输入的信息是否正确。验证没问题后会自动来到进度条界面。
假如你的网站不大,10多分钟就能完成迁移;内容多的话半个多小时一个小时都可能。

5. 完成后迁移后,你再按上文的教程添加域名和SSL,然后继续按下文的步骤设置服务器即可。
优化、配置服务器
在 Application Settings
中,有General、PHP FRM Settings、Varnish Setting、WordPress Setting四个选项卡。我们通常只需要设置General和WordPress Setting两个选项卡下的内容。
General选项卡
以下只列举重要且很可能需要启用的,未提及的保持默认即可。
Varnish:建站完成后启用。在六大缓存类型一文中介绍过,它属于服务器级别的反向代理缓存,也可以认为是全页缓存。在建站过程中不要启用这一项,否则在未登录状态下,测试时预览前端页面可能出错。Cloudways的varnish默认已经帮我们针对wordpress和woocommerce进行了缓存排除,不需要咱们操心错误缓存的问题了。
Cloudways中默认的varnish缓存只有4小时,建议手动延长缓存时效。在服务器级别的 Settings & Packages - Advanced
中可以更改。
我使用loader.io测试过Cloudways 4G2H服务器,访问woo站点主页(初始加载时页面请求数42,页面大小455k;持续加载后页面总请求数97,页面大小2.4M;静态资源挂了CF CDN),测试结果如下:
测试一:在启用varnish、WP Rocket、Object Cache的情况下,10000人/分钟的访问毫无压力,平均响应时间保持在120毫秒左右;
测试二:在启用varnish,关闭WP Rocket的情况下,10000人/分钟的表现同测试一;
测试三:在关闭varnish,启用WP Rocket和Object Cache的情况下,以60人/分钟来测试,正常平均响应时间是130毫秒左右;5000人/分钟测试,毫无压力,响应时间保持在130毫秒;当以10000人/分钟来测试时,平均响应速度4000毫秒,完成将近9000人的访问数;
测试四:在关闭varnish和WP Rocket,只启用Object Cache的情况下,以60人/分钟来测试,正常平均响应时间是700毫秒左右;当以180人/分钟来测试时,平均响应时间为1000毫秒左右;当以240人/分钟来测试时,30s后服务器终止响应;
测试五:在关闭varnish和WP Rocket、Object Cache的情况下,以60人/分钟来测试,正常平均响应时间是720毫秒左右;当以180人/分钟来测试时,平均响应时间为4500毫秒左右;当以240人/分钟来测试时,28s后服务器终止响应;
结论:
①服务器级别缓存(varnish)效率最佳;
②在访问量一般的网站上,服务器级别缓存(varnish)与应用层(wp rocket)缓存差别不大;
③在访问量巨大的网站上,服务器级缓存效率远超应用层缓存;
④设置缓存后的性能比未设置缓存前提升巨大。
那varnish是否应该与网站内的缓存插件共存呢?答案是不一定。因为varnish无法检测到网站内容更新,但是缓存插件通常与varnish已兼容,缓存插件检测到网站内容更新时会自动清除自身缓存以及varnish缓存,使得前端内容同步更新。另一种替代方法也可以不用缓存插件,使用单独的varnish缓存清除插件也可以,比如Proxy Cache Purge(需要将插件设置中的IP设置为 你服务器的IP )——这时使用下文提及的Geo IP Detection、Device Detection功能时就不需要考虑与插件缓存匹配错误的问题。当命中varnish缓存时,浏览器响应标头会显示 X-Cache: HIT ,未命中则是 X-Cache: MISS 。——我在网站上无论使用Proxy Cache Purge还是Breeze插件都无法让varnish正常缓存(不知道是不是插件冲突导致😂),所以还是用了WP Rocket,并且按照这个文档指示禁用掉了WP Rocket的页面缓存功能,这时WP Rocket仅起到与varnish通信的作用(根据这个文档可以检查WP Rocket是否真的未缓存页面)。
注意:C端网站在用户加购后是绕过缓存的,对应<测试四>的场景,所以C端网站对服务器要求很高!
HTTPS Redirection:启用。
Geo IP Detection:视情况启用。开启后,在varnish也启用的情况下,提供给不同国家/地区的页面将会分别缓存。对于多语言多货币网站和分地区个性化网站是不错的选择。
Varnish很多时候读取的响应内容来自于WP缓存插件(缓存的内容与缓存插件相同),故当启用按Geo缓存时,应当禁用没有Geo缓存功能的WP缓存插件。
Device Detection:视情况启用。这项功能目前只在启用varnish缓存后才能使用,开启后将会分别缓存桌面、平板、手机的页面。当然,响应式网站是用不到这个功能的;只有类似这种情况需要用到:在Bricks的conditions中设置了针对不同设备展示不同内容;在主题或插件(如perfmatters)中使用了wp_is_mobile()函数。
当使用WP Rocket时,插件默认为桌面端和移动端分开缓存,但是它的移动端范围不包含平板设备,而wp_is_mobile()函数的移动端包含平板设备,所以为了统一口径,需要对WP Rocket做修改。详见:https://docs.wp-rocket.me/article/708-mobile-cache 。这样插件缓存的内容才能与PHP输出内容一致。
或者使用Mobile Detect插件,改变wp_is_mobile()的范围,使得这个函数指的移动端不包括平板,那就与WP Rocket的默认配置一致。
注意:Device Detection分3种设备端缓存,与wp rocket和wp_is_mobile()等分2种设备端缓存不一样,同时启用可能在多种情况下出现显示错误,所以完全不推荐device detection功能与后两者一起用,特别是不要与wp rocket等缓存插件一起使用!
在我的测试中,单独wp_is_mobile()以及Device Detection + wp_is_mobile() 的组合在ipad mini中显示移动端内容,在ipad air中显示桌面端内容。
Ignore Query String:视情况启用。这项功能只在启用varnish缓存后才能使用。启用后,会将带某些查询字符的网址与不带查询字符的网址视为同一个url进行缓存。匹配的查询字符列表详见官方文档。文档中提到可能会影响某些数据追踪,我测试了GA,是没问题,其他的大家自行测试。

WordPress Setting选项卡
Object Cache Pro:启用。这个属于对象缓存,主要用来缓存数据库查询结果。
XMLPRC Access:测试后启用。现在外部应用大多数通过REST API连接到网站,替代了XMLPRC这种方式,所以基本上是可以禁止XMLPRC请求的,但最好还是等搭建好网站后测试真没用到这个通信功能后再启用。
WEBP Redirection:启用。在使用shortpixel插件中通过.htaccess规则传递avif/webp格式图像的方法时需要用到。

Varnish Settings选项卡
只有当你还想排除某些特殊页面或cookies才用到。只需添加需要额外排除的url或cookie即可,支持正则表达式。当然添加规则后不要忘记在前端测试。
注意:url排除只能使用相对路径,不支持整个url链接。参见文档。

升级到付费账户
由于我们的cloudways账户只有3天的免费体验时间,当试用期结束后咱们的主机和网站会被删除,所以我们务必要在结束前升级到付费账户。界面顶部会出现Upgrade my Account
的提示,点击付费链接;或者也可以按下图的指示到 Payment & Address
界面,依次填入信用卡信息、完成信用卡绑定。

当然,也可以用Paypal支付,只是要单独联系客服开通,过程要稍微麻烦一些。
另外需要提一嘴的是,Cloudways除了收取主机费用外,还会收一项服务器备份费用,金额是$0.033/GB备份,且计费额按$0.5累进。对于绝大多数网站,一个月只需最小额$0.5就足够了。
之后,咱们便可以安安心心继续建站、运营了。
联系客服
cloudways的主机客服是24小时在线的,我们任何关于服务器的问题或是因服务器改动导致网站故障都可以找他们帮忙排查、解决——这就是托管型VPS的好处。他们的服务还是挺好的,一般联系后一两分钟之内就会有回复,当场无法解决的问题会创建工单,后面会持续跟进的。
点击页面右侧的Need a hand?悬浮图标即可联系到客服。(假如点击后没弹出聊天面板,可能是梯子的ip问题,尝试关闭vpn或是切换到另一个节点,重新刷新网页即可;假如还不行,建议尝试用其他浏览器登录。)
接下来,你也可以继续看看这篇关于Cloudways主机日常维护操作的文章。