易服客多个平台基础架构是类似的,都是基于 WordPress 的分布式多服务器架构。并且共享基础的共同代码,但针对不同的应用采用不同的功能和主题。
很多初次接触和使用 WordPress 的人认为它是一个Blog程序,会很慢。但Web应用的快慢,不仅仅是程序的问题,更是架构的问题。
所有大型Web应用程序都会面临这个问题,需要通过类似的技术手段去优化程序和架构。
其中最重要的一点是分布式处理,还有缓存等,以及CDN缓存等。当然本机服务器性能的快慢也有关系。
一般大型Web应用程序的架构分多层,针对各层采用不同的优化方法。
代理层
代理层一般是面向访客的第一层,代理层根据一定的规则,例如轮询、最小连接、固定服务器等,将流量分发给第二层的多个Web服务器。这样就可分散流量,在不同的Web服务器上访问的人会比较均匀。常用的代理服务器有Nginx,Haproxy等,一个标准服务器配置可以轻松应对几万,甚至几十万静态页面并发连接。
当然代理服务器这一层也是可以多个服务器分散流量的。
Web 层
通过代理服务器分发到某个Web服务器上的流量已经是比较合理的,服务器本身一般是可以承受的了。同一个Web应用的Web服务器的配置一般类似,如果前端来的流量过大,已有Web服务器不够处理,就可通过复制或克隆一个新的Web服务器横向扩展Web服务能力。
同时,Web服务器本机的性能也可通过添加缓存或缓存服务器的方式进行优化。本机缓存可以生成静态HTML文件,也可用缓存服务器如Redis和Memcache。缓存也能够极大增强Web服务能力。
数据库层
我们的Web应用的数据库是MySQL。大的MySQL集群一般通过主-从服务器,或者主-主服务器来对服务器进行扩展。如果数据库服务器不够用,则可以通过增加新的服务器。在Web服务器应用中,将数据库链接信息指向新加的MySQL服务器即可。我们的易服客VIP服务器托管即采用此种办法。
文件层
WordPress 网站具有大量的文件,典型的如图片,并且WordPress将网站的文件单独存贮在一个目录中。所以,我们将图片和文件单独存储在一个文件服务器中,挂载在WordPress应用目录下即可。
同时,也可以将图片等存放在外部云存储服务器上,以利用外部的互联网基础设置。
从上面的描述中可以看出,WordPress 网站具有高度可扩展性的,有轻松的办法让它能应对成千上万的并发访问。所以,所谓的WordPress不适合做大型应用的传言也就不可信了。
反之,如果不利用WordPress生态成千上万的扩展插件和主题以及开发人员进行Web应用开发,倒是一种大大的损失。
没必要重新发明轮子,发明一个可能行使得不太好的轮子。我们要做的是“站在巨人的肩膀上”,通过WordPress网站发挥自己的专长扩展互联网业务。