昨天在V2EX网站上看到一篇《为 1Mbps 正名,单日 15 万 PV 证明 1Mbps 对小网站来说完全够用》的文章,以及其他小伙伴的评论,缙哥哥觉得非常不错,这里跟大家分享下。同时在此技术上,今天来跟大家谈谈使用 WordPress 程序,该如何架构服务器的问题。
WordPress站点服务器架构
其实这跟缙哥哥看病一样,需要辨证论治。架构服务器的话同样要了解自己需要的是什么,而不是像o0小伙伴说的那样“很多人在项目还没上线之前,就在 yy 服务器够不够用”这样的窘境。当然,某些人可以用一句“老子有钱”来无视这个架构,不过缙哥哥认为,你再有钱,你目前也比不上阿里巴巴有钱吧,人家仍旧在精研云服务架构呢。
什么?你还在用虚拟主机?趁着阿里云双11活动,可以很便宜的买个229元/3年的服务器。当然也可以考虑下交给缙哥哥 WordPress 托管,十多年非专业选手的服务,应该还是不错的!
WordPress新站建议用阿里云T5系列
CPU负载的考虑
为什么缙哥哥推荐阿里云T5系列云服务器?因为它便宜,因为它适合 WordPress ,一个新站本身对CPU要求就不高,做好常规优化后,你可能CPU占用最高的时候就是部署环境的那一个小时了,缙哥哥的博客(每天1-1.5万IP,且没套CDN时的情况)就放在阿里云的1核服务器中,CPU平均占用率不超过20%
普通的WordPress新站,缙哥哥认为是不需要考虑什么的,唯一需要考虑的是你对Linux操作系统会不会操作,能否架设WordPress站点环境而已!
这里推荐 阿里云T5系列 云服务器,有些认为阿里云坑,说是套路云,呵呵,不解释。难道傻子说别人傻,你也得反过来说傻子傻么?真套路的话能上全球前三?真套路的话能做到国内最大?其他服务商连套路都不如?连套路都不会?
硬盘选择HDD、SSD、ESSD?
这里缙哥哥推荐看活动套餐,以最近阿里云双11活动为例,40G的是高效云盘,应该也就是我们常说的HDD了吧,至于普通云盘,套餐都已提供高效云盘了,也就不BB了,ESSD价格太美丽,这次也不做讨论!
- 高效云盘:最大IOPS为5000,最大吞吐量为140MBps,单路随机写访问时延1−3ms
- SSD云盘:最大IOPS为25000,最大吞吐量为300MBps,单路随机写访问时延0.5−2ms
再说了,现在已经步入云时代,对象存储是干什么的?直接调用对象存储,阿里云的100G对象存储才9块钱一年,怕流量费高你可以用免费CDN缓存个一年半载的。
总结:从数据上看起来SSD云盘优秀很多,但是当你购买服务器时,将套餐自带的高效云盘改为SSD云盘,整体价格就贵了不少,与整机总费用来说,性价比提升不高。如果2G内存的服务器只放个 WordPress 新站点,完全可以将2G内存分出1G作为内存盘(就是用内存当存储,重启后内容丢失),作为Nginx缓存,不仅能极大的减少服务器生成页面(这样有降低了对CPU的要求),又能提高用户访问速度。
服务器带宽选择
WordPress新站选用1M带宽就够了!开头缙哥哥就说了,本文是因《为 1Mbps 正名,单日 15 万 PV 证明 1Mbps 对小网站来说完全够用》而起的,缙哥哥的博客并没有他那么多的流量,但是每天最低1万的IP和5万的PV还是有的,放在阿里云学生机内完全够用。无论是1核CPU、2G内存、40G硬盘、1M带宽,没有一项是跑满的,可以说流量再翻倍都没事,所以那些一上来就要买3M、5M带宽服务器的小伙伴,缙哥哥只能表示一句“你壕”!
不过1M带宽也不是说装个 WordPress 就可以的,需要说明一点的是,当有一定流量后,如果不对WordPress服务器环境以及站点进行优化,10M带宽的服务器不见得比优化好的1M服务器快!所以基础优化还是不可缺少的,以下就来谈谈如何针对公网带宽进行优化!
- 使用CDN加速(偏向静态的站点)或动静态分离(偏向需要互动的站点);
百度云加速免费CDN支持HTTPS加速,日流量10-20G,附缓存规则
使用360网站卫士免费保护并加速你的WordPress网站
WordPress动静态分离,媒体文件FTP传输并批量修改图片地址 - 将HTML页面进行压缩;
- 将WordPress的头像获取点使用国内加速点,比如从Gravatar官方ssl获取或从v2ex获取;
- 将js公共文件进行托管,可选择百度、或者框架来源站点;
- 可将图标之类不要放自己的网站上,利用阿里图标、fontawesome等进行调用;
给WordPress导航菜单添加个性图标字体 - 可将字体文件之类的公共文件拿来调用,不要放自己的服务器上;
- 提供下载的大文件可放置第三方网盘,并以链接形式分流下载。
不管第一点做没做,缙哥哥都建议你在发文章的时候将每张图片都处理好,比如适合文章的图片大小,常规在700-800像素左右;比如图片的DPI,网页可选76-120之间;比如图片的大小,这里缙哥哥推荐3个工具进行图片的压缩:
海外无备案WordPress新站如何操作?
说到这里有小伙伴就问了,我的域名没有备案啊,不能用CDN加速啊怎么办?屁,你只是不能用国内的CDN加速而已,《免备案CDN加速服务商NodeCache,注册就送1T免费加速流量》了解一下!还有,上面缙哥哥已经说了动静态分离,你完全可以弄个图床站做备案,然后将图片、js、css、font等常见静态文件进行CDN加速,那么按照常见网页20-50KB/PV来计算,也会感觉非常快的!
再说了,你特么见过哪个海外主机是1M带宽的?缙哥哥见过最低的日本也有50M(啊不,阿里云轻量云海外的只有30M)。
这款 T5系列111香港服务器 是给那些不愿意备案的小伙伴的,毕竟9.9元人民币(1.4美元)/月的国际大服务商香港服务器还是很少见的!
服务器内存的处置
WordPress这个CMS系统它比较喜欢“吃”内存,包括缙哥哥在内,都推荐使用Linux操作系统。为什么呢?因为Windows系统本身就比较占内存,无论是它的图形化界面还是各种库,都需要CPU和内存的支持,所以Windows系统甚至不能安装在512M内存的服务器中,因为它一安装,就已经没有内存供其他程序运行了……
那么用了Linux系统作为WordPress网站服务器的系统,你会发现一个问题,那就是“我的内存基本都是满的,甚至比Windows系统占用还要多”,到底什么东西在占用我的内存呢?其实在18年的时候,缙哥哥就写过一篇文章《Linux 运行 WordPress 内存占用高?是否需要开启Swap功能?》,小伙伴们可以看下,大致讲述的就是:
在 Linux 中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是 Linux 内存管理的一个优秀特性,在这方面,区别于 Windows 的内存管理。主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高 Linux 系统的数据访问性能。
那么这里缙哥哥再建议下:swap是Linux下的虚拟内存,设置适当的swap可增加服务器稳定性。建议swap容量在真实内存容量的1.5倍左右,若您的服务器内存大于4GB,可设1-2GB的固定值。
这样的好处就是万一内存用完的时候,还可以临时调用下虚拟内存!或者你可以根据自己服务器的具体状况,使用《宝塔面板通过计划任务定期释放PHP占用的内存》。
而一般来说,如果你的 WordPress 站点做了内存缓存,你的内存占用不会很多。这里有几篇文章值得你去拓展阅读:
- Redis和Memcached哪个比较好?
- 宝塔下运行Memcached加速WordPress,附插件配置方法
- 使用Batcache将Memcached多个缓存对象以页为单位整合加速
- 同一服务器多个WordPress站点使用Memcached冲突的解决办法
WordPress老站服务器架构
老站跟新站的架构类似,但更多的需要自己更加明确的定位。比如
流量大带宽不够:则可以酌情考虑CDN加速,动静态分离,页面压缩从而降低数据传输,实在没有办法降低之后,再考虑增加带宽。并且还要根据自己 WordPress 站点的特性来预留30-50%的带宽预防突然流量爆发。
经常CPU爆满:则需要查看原因,是请求“过多”所导致的CPU爆满?还是数据频繁查询所导致的CPU爆满?请求过多可设置内存缓存,Nginx页面缓存,静态请求分离或CDN加速。而数据库查询所导致的可以设置数据库查询缓存,搜索引擎收录较好的还可以使用像百度站内搜索等功能。至于自建云搜索服务器(在线分布式搜索服务)那属于进阶知识了,缙哥哥认为不是一个连服务器都还没解决的人所需要的。
内存爆满:则需要查看进程过多、连接过多、缓存过多等各种问题,需要根据服务器具体情况针对性解决。
硬盘爆满:Linux默认40G的硬盘你都能用完?那你绝对不是小站了……图片?你可以用各种对象存储;备份?3-7份够了吧,图片没有后备份也不大,再说了,备份可以直接邮件、网盘、对象存储多重备份;还有个缙哥哥经常遇到的情况就是日志文件了。有时候日志文件大到你无法想象,曾经缙哥哥有个40G的云服务器,除了系统、应用程序、网站程序、数据库以及备份外,75%被日志程序所占用!所以尽量使用正版的主题来减少debug,当然,你实在没法解决的情况下还可以《使用宝塔面板中的计划任务shell脚本定时删除指定类型文件》,比如.log日志文件。
最后总结
所以呢,如果你能将一台1M的服务器“用满”了,那缙哥哥认为你已经不是小站了。这个时候还望不吝赏脸,在下方评论下,或者友情链接位置里能有我一个!现在,你还会去选择阿里云的T系列 1Mbps 带宽的服务器吗?如果会,那 今年2019的双11活动价229元/3年 绝对是超值的!
你们有自己造的服务器吗?
我就是你说的 t5 这篇文章让我打开了十几个页面,我学习一下。