爱主题全站正式启用HTTPS

随着百度开放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年,可以添加多个域名。

另外对于腾讯云用户来说,可以申请到1年的免费SSL证书,由赛门铁克(Symantec)顶级根证书签发,在官网的价格是1900元/年。如果是腾讯云用户的话,那么还是非常推荐使用这个证书的。

SSL检查的问题

SSL证书配置好了以后可以通过https://www.ssllabs.com/ssltest/ 进行检查,ssllabs会对你的网站进行评级,并给出一些优化建议。

大致就是这些,具体的安装大家可以查找相关资料,这里就不多介绍了。

猜你喜欢

评论列表(3)

  • 加油5580 2016年11月18日 10:51

    可以求一个贵站的 WP Fastest Cache 重写nginx的伪静态规则吗? 谢谢 ,正准备用 这个缓存插件 。
    还有一个咨询一下如果用七牛或者又拍 装了这个WP Fastest插件的CDN功能就直接可以用了吗 还是要装wp 七牛 或者又拍的配合?
    谢谢

    • 爱主题 2016年11月21日 17:44

      location / {
      # if the requested file exists, return it immediately
      if (-f $request_filename) {
      break;
      }

      set $rewrite 1;
      if ($request_method = POST) {
      set $rewrite 0;
      }
      if ($query_string != "") {
      set $rewrite 0;
      }
      if ($http_cookie ~* "(comment_author|wp\-postpass|wordpress_logged_in|wptouch_switch_toggle)") {
      set $rewrite 0;
      }

      set $file_ext "";
      if (-f "$document_root/wp-content/cache/all$request_uri/index.html") {
      set $file_ext .html;
      }
      if (-f "$document_root/wp-content/cache/all$request_uri/index.xml") {
      set $file_ext .xml;
      }
      if ($file_ext = "") {
      set $rewrite 0;
      }

      if ($rewrite = 1) {
      rewrite .* "/wp-content/cache/all$request_uri/index$file_ext" last;
      }

      # all other requests go to WordPress
      if (!-e $request_filename) {
      rewrite . /index.php last;
      }
      }

      • 加油5580 2016年11月21日 18:09

        非常感谢 已经开启 已经收藏 会常来发现新技术^_^

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注