Apache Web服务器软件拥有以下特性:
支持最新的HTTP/1.1通信协议;拥有简单而强有力的基于文件的配置过程;支持通用网关接口;支持基于IP和基于域名的虚拟主机;支持多种方式的HTTP认证;集成Perl处理模块;集成代理服务器模块等等。
2.3.2 Nginx与Apache的比较及优势
Nginx和Apache一样,都是HTTP服务器软件,在功能实习上都采用模块化结构设计,都支持通用的语言接口,如PHP,Perl,Python等,同时还支持正向和反向代理、虚拟主机、URL重写、压缩传输、SSL加密传输等,他们之间最大的差别是Apache的处理速度很慢,且占用很多内存资源,而Nginx却恰恰相反。在功能实现上,Apache的所有模块都支持动、静态编译,而Nginx模块都是静态编译的。Apache对Fcgi的支持不好,而Nginx却能够很好兼容。在处理连接方式上,Nginx支持epoll,而Apache不支持。在空间使用上,Nginx0.7.65安装包只有591KB,而Apache的2.4.7版本,大小则要到6.43MB,相对而言绝对是庞然大物。
作为Web服务器,Nginx处理静态文件、索引文件、自动索引的效率非常高。
作为代理服务器,Nginx可以实现无缓存的反向代理假设,提高网站运行速度。
作为负载均衡服务器,Nginx既可以直接支持PHP,也可以支持HTTP代理服务器对外进行服务。
Nginx可以支持更多的并发连接,最大支持50000个并发响应;保持10000个没有活动的连接,却只占用2.5MB内存。此外还支持热部署,可以在不间断服务的情况下,对版本进行升级,运行数月也无需重启。
2.3.3 Nginx模块与工作原理
图2-2简单描述了Nginx工作的一个简单的工作原理图,将各个模块如何接受HTTP请求并响应的工作原理展现出来。
图2-2 Nginx模块的HTTP请求和响应过程
Nginx的模块从功能上分为三类:
1、Handlers(处理器模块)。直接处理请求,并进行输出内容和修改headers信息。
2、Filters(过滤器模块)。主要对其他处理器模块输出的内容进行修改操作。
3、Proxies(代理类模块)。是Nginx的HTTP Upstream的模块,主要与后端一些服务进行交互,实现服务代理和负载均衡等功能。
在工作方式上,Nginx分为单工作进程和多工作进程,单工作进程模式下除主进程外,还有一个工作进程,工作进程是单进程的。多工作进程模式下,每个工作进程包含多个线程,Nginx默认是单工作进程模式。Nginx的模块直接被编译进Nginx,因此属于静态编译方式,启动Nginx后,Nginx的模块被自动加载。
2.4 高性能HTTP加速器——Varnish
Varnish是一款高性能且开源的反向代理服务器和HTTP加速器。挪威最大的在线报纸Verdens Gang(vg.no)使用3台Varnish代替了原来12太Squid,性能比以前更好。
2.4.1 结构与特点
Varnish是一款轻量级的Cache和反向代理软件。现金的设计理念和成熟的设计框架是Varnish的主要特点。以下是Varnish的一些特点:
1、基于内存进行缓存,重启后数据将消失。
2、利用虚拟内存方式,I/O性能好。
3、支持设置0~60秒的精确缓存时间。
4:、利用二叉堆管理缓存文件,可达到积极删除目的。
2.4.2 管理方法
1、内置函数:
VCL(Varnish Configuation Language),用来定义Varnish的存储策略。表2-3中介绍了Varnish函数的作用以及相应的返回值。 基于LVNT的中小型企业网站服务器架构优化(5):http://www.youerw.com/yanjiu/lunwen_18186.html