使用VPS反向代理加速WordPress头像显示

17 | 03 | 2021

0. 前言

由于自己建立的WordPress经常无法显示自己的头像,查询之后发现是WordPress的头像是调用了Gravatar的头像接口,而后者的官方网站因为众所周知的原因无法访问了。

在测试了多个解决方案之后,发现VPS反向代理+Gravatar头像修正插件的组合解决方式效果最好,在这里记录一下。

本方法的前提是,需要有一个自己的域名,且VPS必须是在国外

如果没有国外的VPS,可跳到步骤2,使用其他人搭建好的国内CDN。

1. Gravatar官网反向代理

参考链接:http://www.qs02.com/fxdl.html

1.1 正向代理与反向代理

简单介绍下反向代理和正向代理两种代理的主要区别:

  • 正代:服务端不知道真实客户端。

    打个比方,社恐A不敢出门买东西,只好拜托B去超市买。作为服务商的超市不知道自己的东西卖给了谁,只能看到作为代理人的B在超市里购物。购物结束后,B将买好的货物带给A。

    这里的B就相当于代理服务器,代替A在网络上完成请求,并将结果返回给A。

    大多数科学上网工具都是正向代理,客户端知道自己想访问什么网站,通过代理服务器对该网站的内容进行请求后转发给客户端。

  • 反代:客户端不知道真实的服务端。

    打个比方,例如用户拨打了10086人工服务,10086会在众多业务员中找到一个人和客户进行沟通。而用户拨打10086时并不知道接下来给自己服务的人是谁。这就是反向代理。在网络访问上亦然,用户访问了www.example.com,但是并不知道这个网址后面真正提供服务的服务器是是什么,只知道打开了这个链接就能够得到所需的服务。

1.2 宝塔面板实现VPS上的Gravatar反向代理

首先在自己的服务器上安装宝塔面板,并安装LNMP(Linux Nginx MySQL PHP)服务,可参照我之前的文章,这里不再赘述。

1.2.1 域名解析配置和网站建设

首先,先配置自己的域名解析的A记录。例如,我们要将自己的域名myfanxiang.example.com做反代,就需要配置自己的域名A记录为:

子域名:myfanxiang 记录值:(服务器ip)

接下来进入宝塔面板首页,点击网站——添加站点,输入自己的域名,其他默认,提交。

1.2.2 反向代理配置

点击新建的网站,进入站点设置页面。

如果要反代的页面是https,则需要先给自己申请个SSL证书,否则无法代理。

点击SSL——Let’s Encrypt,申请免费的SSL证书。

按照默认值申请即可,申请结束后能在这里看到申请的证书的KEY和PEM:

接着点击反向代理——添加反向代理,将目标URL填入要代理的域名,如下图所示。由于我的WordPress使用了SSL,因此需要代理的是secure.gravatar.com

保存之后访问自己设置的代理域名,如果能正常打开gravatar主页,说明代理正常。

2. Gravatar头像修正插件的安装和使用

首先下载头像修正插件gravatar-fixed.zip。

接下来打开WP的仪表盘——插件,点击上传插件将zip上传后安装。

安装成功后,在设置下会多出一个头像设置:

进入设置,填入服务器即可。

如果之前做了反代的设置,填入自己反代服务器的域名(注意http和https区别),否则填入其他的CDN域名即可。

设置成功后刷新,就可以看到头像能正常显示了。