图片服务器分离
原因分析:对于一个非视频类的网站,图片一般是最消耗资源的, 这个时候应该考虑图片与页面分离,也就是独立的图片服务器.
上面是经典的LAMP架构图,在LAMP架构中,当流量很大到时候,apache服务器的缺点就暴露出来,
可以采用nginx来负载非PHP的Web请求,使用nginx这种高性能的HTTP和反向代理服务器作为静态资源的独立服务器,保证系统的消耗和执行效率。
缓存技术
LAMP缓存图
从图中我们可以看到网站缓存主要分为五部分:
1.服务器缓存:主要是基于web反向代理的静态服务器nginx和squid,还有apache2的mod_proxy和mod_cache模块
2.浏览器缓存:包括页面html缓存和图片js,css等资源的缓存
3.PHP缓存:有很多免费的PHP缓冲加速工具,如apc ,eaccerlertor等
4.内存缓存:主要是采用memcached这种分布式缓存机制
5.数据库缓存:通过配置数据库缓存,以及数据存储过程,连接池技术等
缓存黄金原则:让数据更靠近 CPU。
CPU-->CPU 一级缓存-->二级缓存-->内存-->硬盘-->LAN-->WAN
数据库集群和库表散列等等
这点本人没有涉猎可以参考优酷网架构中的数据库处理方法:
https://www.chinaz.com/web/2011/1026/215886.shtml
负载均衡
负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。
优点
(1)解决网络拥塞问题,就近提供服务,实现地理位置无关性;
(2)为用户提供更好的访问质量;
(3)提高服务器响应速度;
(4)提高服务器及其他资源的利用效率。
PHP中web server解决方案
对于PHP的webserver的负载均衡,
apache的均衡策略
ProxyPass 指令
说明
将一个远端服务器映射到本地服务器的URL空间中
语法
ProxyPass [path] ! |url [key=value key=value ...]]
作用域
server config, virtual host,directory
模块
mod_proxy
该指令允许你将一个远端服务器映射到本地服务器的URL空间中,此时本地服务器并不充当代理角色,而是充当远程服务器的一个镜像。path是一个本地虚拟路径名,url是一个指向远程服务器的部分URL,并且不允许包含查询字符串。
当使用ProxyPass指令时,ProxyRequests指令通常应当被设为 off。
假设本地服务器地址是:https://example.com/,那么,
ProxyPass /mirror/foo/ https://backend.example.com/
将会导致对https://example.com/mirror/foo/bar的本地请求将会在内部转换为一个代理请求:https://backend.example.com/bar。
更详细的说明可以参看:https://httpd.apache.org/docs/2.2/mod/mod_proxy.html
apache的三种均衡负载策略:https://s456123123b.blog.163.com/blog/static/5632332220101080474642/
(举报)