博主很早之前就注意到自己的网站评论提交很慢了,以前也就是简单看看是Akismet的问题,也没对此过多关注;昨天恰好因为后台太慢了,翻了下Akismet的文档,然后就……睡着了……
零、写在前面
首先这篇文章是给服务器在国内的朋友看的,站点在国外基本上没有这个烦恼(当然如果你用的AWS北京或者世纪互联当我没说)
从自己建站的经验来看,WordPress本土化不可避免的三座大山就是Gravatar头像、更新服务、高依赖插件。WordPress的开发商Automattic也是个小工作室组成的公司,再加上他并没有什么大流量的服务,官方服务器选择接入的带宽都是相对比较便宜的。
官方的服务国内访问真的就是一言难尽,基本上都是环游世界,加上管理层对大陆并不友好,之前臭名昭著的429事件让国内服务器连更新服务都不能使用。
国内的插件和更新服务可以参考WP-ChinaYes:
【WP-ChinaYes】一个插件解决WordPress国内429(附反代配置)
Gravatar头像问题可以进行反代:
有很多人给我推荐过同类的Typecho乃至HEXO这样的静态博客,但是从16年开始用WP现在突然说要做迁移实在是个艰难的决定;现在我能做的最简单的也就是尽自己所能去优化它,维持现在这样就挺好了,毕竟是很成熟一个平台了。
当然不得不说Akismet的效果确实很不错~
壹、可信证书
反代的话,有人推荐SNIProxy这样的,不过这些四层转发就不能根本地的WebServer共存了,独占了80和443端口,不太能接受这个方案。昨天看到了Google员工发起的mkcert
项目,能够快速不受限地自签名证书同时配置系统及浏览器信任,非常方便,这样我们就可以用自签名证书让自己的服务器信任我们自己搭建的反代了。
GitHub项目地址:https://github.com/FiloSottile/mkcert
我们需要的证书是*.rest.akismet.com
,安装及配置流程如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#安装依赖 yum install nss–tools apt–get install nss–tools #新建文件夹 mkdir mkcert && cd mkcert #下载对应版本mkcert wget –O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert–v1.4.3–linux–amd64 #加执行权限 chmod +x mkcert #安装信任证书 ./mkcert –install #生成自签名证书 ./mkcert “*.rest.akismet.com” |
注意生成这个证书要在你位于国内、运行网站的服务器上操作,这样才能信任这个证书;生成好的证书和密钥就在这个文件夹里面,拿出来用就可以了。
贰、配置反代
反代就不必多说了,经过实际测试Akismet的API仅需要请求一个域名,就是[API密钥].rest.akismet.com
,比如我的就是8939*****.rest.akismet.com
。
反代配置如下:
1 2 3 4 5 6 7 8 |
location / { proxy_pass http://[API密钥].rest.akismet.com; proxy_set_header Host [API密钥].rest.akismet.com; proxy_set_header X–Real–IP $remote_addr; proxy_set_header X–Forwarded–For $proxy_add_x_forwarded_for; proxy_set_header REMOTE–HOST $remote_addr; } |
选择一台位于海外并且到国内都尚可的服务器反代它即可,证书配置为刚才的证书;我用的是香港ORANME的CN2服务器作为反代,速度还是很不错的。
叁、替换Hosts
然后改一下本地的hosts把它指过去就可以了:
1 2 3 4 5 6 |
#编辑hosts nano /etc/hosts #让API指向反代 52.93.x.x [API密钥].rest.akismet.com #保存 Ctrl + x |
然后你可以试试curl
一下[API密钥].rest.akismet.com
,没有错误即可,这时在反代的log上也能看到评论检查的请求记录:
肆、结语
目前为止,这个REST-API的请求还是通过HTTP进行的,没有强制HTTPS,直接反代不配置证书就可以使用;不过大势所趋,建议还是留一手,弄个自签证书替代一下。
有没有感觉现在评论提交变快了很多啊ヾ(≧▽≦*)o
*原创文章,转载请注明出处
原文链接:https://luotianyi.vc/5021.html