针对所搭建的站点图片、静态网页较多的特点特提出解决方案如下:
1.站点架构设计
根据nginx处理并发请求能力强apache稳定、高效的特点,本站点架构为:由一台nginx和两台apache组成。nginx用来作为反向代理服务器,放置到两台apache之前,作为用户访问的入口; nginx仅仅处理静态页面和图片,动态的页面(php请求)统统都交付给后台的两台apache来处理。 也就是说,可以把我们网站的静态页面或者图片文件放置到nginx的目录下;动态的页面和数据库访问都保留到后台的apache服务器上。 在此过程中还可以使nginx与fastcgi(快速通用网关接口)结合起来使用,nginx接受客户端的请求然后将请求转发给后端fastcgi进程从而使服务器可以同时处理更多的Web请求。
以上的LNMPA架构建议阿里云服务器的内存在1G以上。
2.对于数据库的设计
设计需折衷考虑,根据业务规则,确定对关联表的数据量大小、数据项的访问频度,对此类数据表频繁的关联查询应适当提高数据冗余设计但增加了表间连接查询的操作,也使得程序的变得复杂,为了提高系统的响应时间,合理的数据冗余也是必要的。
保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担;能够分开的操作尽量分开处理,提高每次的响应速度;在数据窗口使用SQL时,尽量把使用的索引放在选择的首列;算法的结构尽量简单;在查询时,不要过多地使用通配符如SELECT * FROM T1语句,要用到几列就选择几列如:SELECT COL1,COL2 FROM T1;在可能的情况下尽量限制尽量结果集行数如:SELECT TOP 300 COL1,COL2,COL3 FROM T1,因为某些情况下用户是不需要那么多的数据的。