随着百度开放HTTPS站点收录,越来越多的网站开始支持HTTPS,一方面是由于其安全性,另一方面也由于百度、谷歌等搜索引擎明确表明在权重上面会有所倾斜。但是考虑到性能的问题,我们并未第一时间跟进支持HTTPS,促使我们启用HTTPS的主要原因还是因为劫持。就是在访问过程中会发现页面会被跳转到一个空白页,然后再跳转回访问的页面,这个是我无法忍受的,所以考虑之后选择开启HTTPS。
加载慢问题
网站开启HTTPS后,打开速度明显的慢了很多,响应时间能达到3、4秒甚至更长,这里推荐一个测速的网站:www.17ce.com,使用17ce可以大致的了解网站在全国各地的访问速度情况。启用HTTPS后17ce的结果基本上是一片红色,甚至有很多链接超时的情况出现。随后我们开始分析测试,发现直接访问静态文件的话,速度还是比较理想的,只要一访问wordpress就会特别慢,即时开启了缓存插件效果也很差。不过既然访问静态文件快的话,我们是否可以把页面全部缓存成静态的HTML页面呢?
想到这点之后,我们便开始分析有没有相关插件可以实现页面缓存的功能,发现最符合要求的就是cos-html-cache插件了,很可惜插件超过2年未更新,担心会出现兼容问题所以没有采用。后续还试了WP Super Cache,按理说采用mod_rewrite模式访问的就是缓存文件,速度应该会变快才对,实际效果却依然很慢,猜测可能是nginx的伪静态规则写的不对。最后试了WP Fastest Cache,也是没有nginx的伪静态规则,不过分析.htaccess文件发现规则比WP Super Cache的简单,所以耐着性子针对WP Fastest Cache重新写了nginx的伪静态规则,大致原理就是如果本地存在缓存文件,则直接返回缓存的静态HTML文件给浏览器,不需要经过wordpress拿数据,在多次修改测试之后,总算成功了,页面加载时间已经接近正常http访问的时间。
更多关于WP Fastest Cache的介绍:WP Fastest Cache WordPress缓存加速插件
证书的问题
开启HTTPS是需要SSL证书才行的,目前大部分的证书都是需要花钱买的,并且价格也不低。不过免费的证书也是有的,之前沃通的免费证书还是挺好用的,不过目前已经停止提供免费证书服务了,这里再推荐两个:Let’s Encrypt和StartSSL。
Let’s Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,来头好像不小,不过免费证书有效时长为3个月,到期需要手动续期,或者写脚本定时运行续期。
StartSSL也是一个比较知名的提供免费证书的服务商,免费证书有效期是3年,可以添加多个域名。
SSL检查的问题
SSL证书配置好了以后可以通过https://www.ssllabs.com/ssltest/ 进行检查,ssllabs会对你的网站进行评级,并给出一些优化建议。
大致就是这些,具体的安装大家可以查找相关资料,这里就不多介绍了。