论文部分内容阅读
随着互联网技术的高速发展,网络信息的访问量也越来越大,人们对WEB网站信息的获取量也越来越大,对同一WEB服务器的并发快速请求量以指数形式增加,从而形成了著名的C10K,甚至C500K问题,而网络操作系统在设计上及应用程序服务本身的特性致使高效并发WEB服务器的设计成为当前互联网技术中的一个重要难题。本文在分析高并发WEB服务器访问的特点的基础上,分析了当前WEB服务器的10模型以及服务器框架,同时对比当前流行的开源WEB服务器lighttpd、 apache、nginx的性能,针对高并发的应用需求,在nginx开源框架的基础上,选用分布式cached型keyvalue数据库:memcached为缓存机制,实现Nginx的upstream模块,从而实现基于nginx和memcached高并发WEB服务器系统。本系统在设计上以非阻塞EPOLL支撑模型为基础,一方便配合使用TCP特殊设置,包括TCP_DEFER、TCP_CORK、TCP_NODELAY、TCP_KEEPALIVE以及非阻塞式connect策略来减少网络负载,提高响应时间,从而整体上提高网络访问效率,另一方面在nginx基础上实现自定义memcached upstream模块,根据HTTP服务的特点,所有热数据全部缓存到memcached分布式数据库中,从而大大提高数据的访问效率。由于memcached支持一致性hash分布式算法,系统还可以很方便的横向扩展,实现负责均衡和分布式部署策略。最终,经过测试对比,采用nginx+memcached策略一方面能够很好的解决C10/C500K问题,同时,能够将所有的用户请求响应时间限定在1秒以内,从而完全满足当前互联网高速并发WEB服务器设计的需求。