国内典型的服务器架构:
--------------------
***前端nginx/tengine(tengine.taobao.org)
反向代理和应用层的负载均衡(网站的模块如:bbs)、地址重写等
***缓存varnish
它是在nginx与apache之间的缓存服务
当请求时,如果有缓存则通过varnish直接返回数据,没有时则转给apache->tomcat->mysql再返回数据
***后端apache->tomcat->mysql
***memcached/redis用于减轻数据库IO的缓存服务
***keep-alive:网络连接没有断开,但没有数据传输的状态叫keep-alive
***nginx的keep-alive:10,000个keep-alive连接只用2.5M的内存
***nginx特性
1)高并发连接
官方测试nginx能够支撑5万并发连接,实际测试可以达到3万左右,按照这样计算,每天可以处理上亿次访问量,采用最新epoll(linux2.6内核)和kqueue(freebsd)网络I/O模型,而apache则使用的是传统的select模型
2)内存消耗小
nginx+PHP(FastCGI)服务器在3万并发连接下,开启10个nginx进程消耗150MB内存(15MB*10),开启64个php-cgi进程消耗128MB内存(20MB*64),使用Webbench做压力测试,在3万并发量下速度依然很快。
tmpfs--用df -h查看
***并发连接:apache3000左右,nginx30000左右,并发量nginx是apache的10倍左右。
原因是用的I/O方式不同,apache用的是select模型(阻塞IO),nginx用的是epoll模型(多路复用IO)
***切换主机:ssh 192.168.0.254
***200为第一回请求,302:为从缓存返回的请求
***对于视频文件下载的限制,缓存10M的视频:前10M不限速,后面限速
--------------------
***前端nginx/tengine(tengine.taobao.org)
反向代理和应用层的负载均衡(网站的模块如:bbs)、地址重写等
***缓存varnish
它是在nginx与apache之间的缓存服务
当请求时,如果有缓存则通过varnish直接返回数据,没有时则转给apache->tomcat->mysql再返回数据
***后端apache->tomcat->mysql
***memcached/redis用于减轻数据库IO的缓存服务
***keep-alive:网络连接没有断开,但没有数据传输的状态叫keep-alive
***nginx的keep-alive:10,000个keep-alive连接只用2.5M的内存
***nginx特性
1)高并发连接
官方测试nginx能够支撑5万并发连接,实际测试可以达到3万左右,按照这样计算,每天可以处理上亿次访问量,采用最新epoll(linux2.6内核)和kqueue(freebsd)网络I/O模型,而apache则使用的是传统的select模型
2)内存消耗小
nginx+PHP(FastCGI)服务器在3万并发连接下,开启10个nginx进程消耗150MB内存(15MB*10),开启64个php-cgi进程消耗128MB内存(20MB*64),使用Webbench做压力测试,在3万并发量下速度依然很快。
tmpfs--用df -h查看
***并发连接:apache3000左右,nginx30000左右,并发量nginx是apache的10倍左右。
原因是用的I/O方式不同,apache用的是select模型(阻塞IO),nginx用的是epoll模型(多路复用IO)
***切换主机:ssh 192.168.0.254
***200为第一回请求,302:为从缓存返回的请求
***对于视频文件下载的限制,缓存10M的视频:前10M不限速,后面限速
本文介绍了国内常见的服务器架构,包括前端的nginx/tengine反向代理和负载均衡,中间缓存服务varnish,以及后端的apache、tomcat和mysql组件。同时讨论了memcached/redis缓存服务的作用和nginx的特性,例如高并发连接能力和内存消耗小的特点。
316

被折叠的 条评论
为什么被折叠?



