速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

博文共赏:道哥的网站优化指南之数据库缓存、CDN 与云存储

  • 2013-09-21
  • 本文字数:2359 字

    阅读完需:约 8 分钟

编者按:本文来自微信公众账号道哥的黑板报(账号 ID:taosay)于 2013 年 9 月 17 日发布的文章,经道哥授权,以博文共赏的形式分享给 InfoQ 中文站的读者们。本文虽然是个人网站优化的经验,但很多经验并不仅限于个人网站的业务场景,对于各类网站的维护人员均有参考价值。

前些时终于腾出空来把 taosay.net 的网站好好的整理了一下,借此把一点心得分享给大家。这些经验都是比较基础的东西,主要是让对建站感兴趣的朋友们可以少走一点弯路。

首先我的个人站点 taosay.net 是用 Wordpress 搭建的,这是一套开源的博客系统。为什么用 Wordpress 搭建呢?因为 Wordpress 已经是世界上最大的开源博客系统了,核心代码的安全性已经有了很大的提高,近年来的主要漏洞都是出在第三方开发者写的插件上,而非核心代码中。Wordpress 有大量的插件可供选择,可以在不用自己写代码的情况下完成大部分的网站优化工作,因此在精力有限的情况下,是个人建站的第一选择。

关于如何购买服务器,搭建数据库、webserver,安装 Wordpress 等内容,可以参考 Mactalk 写的「趣谈个人建站」一文。今天我要写的,主要是在站点建好后如何优化的事情。

关于性能

我的站点 taosay.net 自从上线后,崩溃过好几次,都是因为突发性的访问量激增。比较典型的是「中国黑客传说」系列文章写出来后,引起了极大的关注。网站的并发在线数大增的后果,首先是数据库扛不住了。因为Nginx 本身的性能非常好,可以支持数万的并发,所以瓶颈主要还是在数据库上。

因此优化数据库连接是第一步。常见的做法是用内存做cache,把数据库里的内容提前取出读到内存里,用户再请求时,就不直接读数据库,而是读内存里的数据,从而缓解了数据库的压力。过去比较常用的缓存软件是memcached,现在则比较流行redis。两者都是以key-value 的形式把数据存储在内存中。

在网上随便找篇攻略按照提示配置好,过程我就不赘述了。需要注意的是memcached 的端口需要做访问限制,因为一般是没有认证的,只要连上就能读数据。很多大互联网公司如搜狐、新浪都曾经因为没有限制缓存服务的端口访问而造成过信息泄露。

安装好memcached 后,再去Wordpress 的插件列表里,选择搜索「cache」,或「memcache」之类的关键词,可以找到很多相关的插件。根据说明安装好这些插件后,一般就可以无缝衔接缓存软件和Wordpress 了。我自己用的方案是memcached 搭配WP-FFPC 插件。

但后来我发现WP-FFPC 这个插件和别的插件有冲突,所以暂时停用了,而改用了其他的优化方案。

正如前所述,瓶颈主要出在数据库上,硬盘IO 也不是大的瓶颈,而Nginx 的并发数很高,所以我们还有一种优化方法,是将所有的文章,都生成一个静态的HTML 文件,这样用户访问的时候,也不需要直接读数据库,而是从硬盘里读出静态的HTML 页面。我用了一个叫WP Super Cache 的插件来完成这个工作。

但网站真正的访问速度想提高,还有一种比较重要的方式,就是借助CDN,把网站的静态文件都缓存到CDN 服务商的网络中,从而实现加速。CDN 的全称是「内容分发网络」,原理是利用缓存技术,把一些文件缓存在遍布全国的CDN 节点中,从而让网站的用户无须访问服务器,直接从就近的节点中获取内容。目前使用CDN 已经成为大中型互联网公司的标准配置。

使用CDN 主要有两个好处,一是图片、js、css、flash 等静态资源会消耗网站流量的80%,使用CDN 后,这80% 的流量就节约下来了,从而缓解了自己服务器的带宽消耗;二是网站用户会在最近的CDN 节点处直接获取静态资源,而不必访问服务器源站 – 比如湖南电信的用户可以从CDN 在湖南电信的节点获取图片、js、css 等,而不必再访问远在美国的源站 – 从而可以让整个网站的访问速度获得80% 左右的提升。

两个80% 都是经验数据,但也八九不离十,具体优化效果好不好,需要根据实际情况看。因为道哥的站点没有备案,不能放到国内,所以最佳选择是在香港进行一次加速。国内提供香港加速的服务的不多,道哥用的是自己公司的免费产品,一方面不需要花钱,还同时解决了防黑客攻击的问题,另一方面也是可以随时体验公司产品的好坏,出了问题时可以第一时间去追杀产品经理和研发。为避免广告嫌疑,就不赘述了。

聪明的读者可能已经想到了,我前面通过优化的手段把每篇文章给静态化成了一个HTML 文件,也是可以放到CDN 网络里加速的,会让你的网站速度像飞一样。

因为道哥很懒,所以HTML 页面加速工作还没有做。也是因为懒,这些优化我拖了好几个月才去折腾,这也是因为站点完全不盈利的原因。

除了以上所说的工作之外,还可以根据需要考虑使用云存储。Wordpress 有一些插件支持云存储,这样可以把占用硬盘空间最大的图片等内容保存到云存储上,而不占用本地硬盘空间。一些云存储还带有CDN 的功能。目前国内比较流行的云存储有又拍云、七牛、阿里云的OSS 等。

道哥的站点已经扩容过一次硬盘了,现在硬盘使用率又已经到了99%。不过还是因为懒,道哥目前还没有去折腾云存储的事情,等哪天站点因为硬盘使用100% 挂了后再说。

其他边边角角的事情

反垃圾评论可以用Wordpress 默认自带的Akismet 插件,这也是全球范围内比较成功的一家反垃圾的公司。

反黑客入侵方面可以考虑使用云Waf 产品,代表性的是我所在的公司安全宝,几家竞争对手也可以考虑。因为Wordpress 功能比较单一,主要出问题的地方还是在于插件,用云Waf 完全够用了。记得给自己的管理员帐号设置个强点的密码,后台直接被黑客用大数据的方式找到管理员密码而被黑掉的案例很多。

服务器监控可以使用国内的创业公司「监控宝」,免费的服务已经完全够用了。或者是DNSPod 推出的「D 监控」,同样免费又好用。另外DNS 解析一定要用DNSPod,服务质量是全球领先的。如果站点做大了还能用到它的很多高级功能。

=== 道哥的黑板报 ===

微博 ID:aullik5

历史文章存放在: http://taosay.net

2013-09-21 00:394828

评论

发布
暂无评论
发现更多内容

一文让你明白手游行业需要堡垒机的必要性

行云管家

网络安全 数据安全 堡垒机 手游

升华产品管理以提高业务敏捷性

ShineScrum

多项政策扶持与流量激励,华为音乐空间音频创作者获全链路支持

最新动态

Linux进程相关命令

百度搜索:蓝易云

每日必抢小程序下单总结

阿里技术

小程序 支付宝 购物 夸克

构建智能电商新生态:深度解析京东商品详情API的力量

代码忍者

API 测试 pinduoduo API

Datadog 监控最佳实践 | 收集正确的数据

巴辉特

监控 可观测性 监控系统 运维监控 开源监控

AI话中秋,移动高清超高清技术描绘家庭娱乐“新画卷”

最新动态

VMware Avi Load Balancer 30.2.2 发布下载,新增功能概览

sysin

负载均衡 vmware 应用交付 AVI

SpringCache和Redis结合基本使用

百度搜索:蓝易云

低代码平台搭建CRM系统实现公海客户自动分配

低代码小观

低代码开发 低代码平台 低代码搭建crm系统

mcgs笔记 设备窗口 快速连接变量

万里无云万里天

自动化 HMI mcgs

阿里巴巴拍立淘API:实时图像搜索与快速响应的技术探索

代码忍者

API 测试 pinduoduo API

中国智能汽车腾飞,为什么异构算力是第一生产力?

脑极体

异构计算

【YashanDB知识库】DBeaver无法访问数据库

YashanDB

yashandb 崖山数据库

【YashanDB知识库】YAS-02025 no free space in virtual memory pool

YashanDB

yashandb 崖山数据库 yashandb知识库

mcgs笔记 设备窗口 通讯状态

万里无云万里天

自动化 HMI mcgs

Linux:IP转INT详解

百度搜索:蓝易云

DeepinV20/Ubuntu安装postgresql方法

百度搜索:蓝易云

淘宝商品详情API返回值中的预售与定制信息

技术冰糖葫芦

api 网关 API Gateway API 文档 API 测试 pinduoduo API

实时分析都靠它→揭秘YashanDB列式存储引擎的技术实现

YashanDB

列式存储 yashandb 崖山数据库

PingCAP 荣登 2024 Cloud 100 China 第七名

PingCAP

WebServer解析HTTP响应报文

百度搜索:蓝易云

咸宁等保测评机构在哪里?电话多少?

行云管家

等保 等级保护 等保测评 咸宁

TDengine 签约寓信科技,推动智慧公寓的数字化转型

TDengine

数据库 tdengine

Flink Forward Asia 2024 议题征集令|探索实时计算新边界

阿里云大数据AI技术

flink 实时计算 FFA

京东广告投放平台整洁架构演进之路

京东零售技术

架构 代码

mcgs笔记 画面 由全屏回到缩小的窗口状态

万里无云万里天

自动化 HMI mcgs

以 Buycbuy为蓝本:淘宝微店代购集运系统搭建秘籍

tbapi

淘宝代购系统 淘宝代购集运系统 华人代购系统 逆向海淘系统 代购商城系统

全面方位了解桌面管理

Geek_a83400

TiDB 扩容过程中 PD 生成调度的原理及常见问题丨TiDB 扩缩容指南(一)

PingCAP

博文共赏:道哥的网站优化指南之数据库缓存、CDN与云存储_数据库_吴翰清_InfoQ精选文章