如何在谷歌云上设置快速加载的WordPress网站?

在Google Cloud Platform(GCP)上使用WordOps启动高性能WordPress网站的逐步指南。

当你开始成为博客作者或经营小型企业时,共享主机是可以的,因为它成本较低,并且不需要安装/设置/维护基础架构平台的托管技能。

然而,当你的流量或用户群增加时,你需要一个强大的托管平台,以为数百万客户提供服务,而不会遇到slowing down the site的问题。

有一些适用于高流量网站的解决方案,但这很容易每月花费100美元以上

注意Kinsta最近宣布了一个从每月30美元起步的入门计划,利用了GCP。

然而,如果你愿意花一点时间学习并自己做,你可以考虑使用VPS/云服务器。本文将解释如何在Google Cloud Platform上在不到15分钟的时间内运行WordPress网站。

这个设置大约每个月需要费用25美元,并且可以准备好每月提供50万次页面浏览。设置完成后,我会进行一个load test 以验证性能。

先决条件

  • 我假设你已经有一个域名;如果没有,你可以从Namecheap或Google购买。
  • 启用计费的Google云账户
  • 一些WordPress主题,但我将使用Newspaper by Tag div

提供新的Google云服务器

  • 登录Google Cloud并转到Compute Engine >> VM实例(direct link
  • 点击“创建实例”并输入所需信息。
  • 选择区域(选择靠近目标受众的最近位置)
  • 选择机器类型。
  • 将引导磁盘更改为Ubuntu 18.04 LTS,引导磁盘类型更改为具有10 GB大小的SSD持久磁盘。
  • 允许HTTP和HTTPS防火墙,然后点击创建

几秒钟后,你将拥有新的实例准备好。

使用WordOps安装WordPress

有多种安装WordPress的方法,但其中一种最简单的方法是使用WordOps

WordOps是一个脚本包装器,负责安装所需的组件,如数据库、PHP-FPM、Nginx、WordPress、Redis、phpMyAdmin等。如果你手动安装它们,可能需要更长的时间,并有人为错误的可能性。

  • 登录到新创建的Google Cloud VM并切换到root用户

注意:在生产环境中,建议从常规用户设置sudo访问根用户,但在本练习中,我将使用root用户。

  • 使用以下命令安装WordOps
wget -qO wo wops.cc && sudo bash wo
  • 它将花费一两分钟,完成后将返回到提示符。
Synchronizing wo database, please wait...
WordOps (wo) installed successfully

To enable bash-completion, just use the command:
bash -l

To install WordOps recommended stacks, you can use the command:
wo stack install

To create a first WordPress site, you can use the command:
wo site create site.tld --wp

WordOps Documentation : https://docs.wordops.net
WordOps Community Forum : https://community.wordops.net
WordOps Community Chat : https://chat.wordops.net

Give WordOps a GitHub star : https://github.com/WordOps/WordOps/

root@ubuntu-s-1vcpu-2gb-lon1-01:~#

现在是时候创建一个WordPress网站了。WordOps提供了一个选项,如果你想使用缓存插件安装WordPress。

目前,它支持WP Super、W3 Total、Nginx、Redis。我尝试过所有这些,对我来说Redis的性能总是更好。

  • 让我们使用Redis缓存创建一个网站。
wo site create yaoweibinlab.com --wpredis

上面,我要求WordOps为yaoweibinlab.com(这是我的实验室域名)创建一个带有Redis缓存的站点。这个过程可能需要一两分钟,并且会给您关于站点创建的确认信息。

root@ubuntu-s-1vcpu-2gb-lon1-01:~# wo site create yaoweibinlab.com --wpredis
Start : wo-kernel [OK]
正在添加MySQL的软件源,请稍候...
正在添加NGINX的软件源,请稍候...
正在添加PHP的软件源,请稍候...
正在添加Redis的软件源,请稍候...
正在更新apt-cache              [OK]
正在安装APT软件包         [OK]
正在应用Nginx配置模板
正在测试Nginx配置     [OK]
正在重启Nginx                [OK]
正在测试Nginx配置     [OK]
正在重启Nginx                [OK]
正在配置php7.2-fpm
正在重启php7.2-fpm           [OK]
正在调整MariaDB配置
停止 : mysql     [OK]
启动 : mysql     [OK]
正在调整Redis配置      [OK]
正在重启redis-server         [OK]
正在运行更新前检查       [OK]
正在设置NGINX配置 	[完成]
正在设置网站根目录 		[完成]
正在下载WordPress 		[完成]
正在设置数据库		[完成]
正在配置WordPress           [OK]
正在安装WordPress            [OK]
正在安装插件nginx-helper  [OK]
正在设置插件nginx-helper     [OK]
正在安装插件redis-cache   [OK]
正在测试Nginx配置     [OK]
正在重新加载Nginx                 [OK]
HTTP身份验证用户名:WordOps
HTTP身份验证密码:XXXXXX
WordOps后端可以在https://XX.XX.XX.XX:22222或https://ubuntu-s-1vcpu-2gb-lon1-01:22222上访问
WordPress管理员用户:Chandan Kumar
WordPress管理员密码:lyWwnfOhD8XXXXXXNTS3vXri
配置redis-cache:	http://yaoweibinlab.com/wp-admin/options-general.php?page=redis-cache
对象缓存:		启用
成功创建站点http://yaoweibinlab.com
root@ubuntu-s-1vcpu-2gb-lon1-01:~#
  • 安全地保存密码。

WordPress已成功安装,现在是将您的域名指向服务器IP的时候了。这很简单,不是吗?

获取静态IP

默认情况下,Google Cloud会为实例分配一个临时IP,您不希望将其配置为域名,因为它可能在下次实例重启时更改。

为了避免风险,我们将保留静态IP

  • 转到VPC网络>>外部IP地址
  • 下拉菜单选择临时类型,并选择静态
  • 给它一个名称,然后点击保留
  • 您会注意到类型已更改为静态

GCP VM已准备好具有静态外部IP和WordPress,还剩最后一件事要做就是将域名映射到静态IP

更新域名A记录

  • 转到域名注册商
  • 将您的域名的A记录更新为刚刚保留的外部IP

这可能需要一些时间才能在全球范围内传播。您可以使用the DNS record lookup 工具进行验证。

一旦域名A记录已更新,您就可以使用在WordOps命令中使用的域名访问WordPress站点。在我的例子中- http://yaoweibinlab.com

进行负载测试

让我们看看在Google Cloud Platform上新设置的WordPress站点的性能如何。在进行速度测试之前,我将安装一个来自Tagdiv的主题,如前所述。

这不是必需的,但为了确保我有一些文章/媒体文件以模拟真实站点的情况

所以你可以看到,yaoweibinlab.com已经准备好在GCP上使用了。

有多种方式可以进行 benchmarking,最简单的方式之一是从云端进行。我使用Loader.io对100到500个用户进行了一分钟的负载测试,结果如下:

平均响应时间= 695毫秒

我知道这是一个基本的WordPress设置,并且需要在生产环境中安装额外的插件,add security,SSL证书等。但是这样会增加加载时间几个百分点。

结论

我希望这给您一个在Google云平台上设置WordPress的思路。这需要一点时间来设置和技巧,但如果您想每个月节省$$,我认为这是值得的。

另外,如果您没有时间设置或管理WordPress,同时想享受Google Cloud,那么您可以尝试Cloudways managed hosting platform

类似文章