1. LIGHTTPD
1.1.简述
Lighttpd 是一个德国人领导的开源Web服务器软件,具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。支持FastCGI, CGI, Auth,输出压缩(output compress), URL重写, Alias等重要功能。它使用FastCGI方式运行PHP时,将使用很少的PHP进程响应很大的并发量。
1.2.优点
- 从稳定性上看,FastCGI是以独立的进程池运行来CGI,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑;
- 从安全性上看, FastCGI和宿主的server完全独立, fastcgi怎么down也不会把server搞垮;
- 从性能上看, FastCGI把动态逻辑的处理从server中分离出来,大负荷的IO处理还是留给宿主server,这样宿主server可以一心一意作IO,对于一个普通的动态网页来说,逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1)
- 从扩展性上讲,FastCGI是一个中立的技术标准,完全可以支持任何语言写的处理程序(php,java,python…)
1.3.操作系统
- Linux(binary packages for FC3,SuSE,Debian,Gentoo,PLD-Linux,OpenWRT)
- BSD(FreeBSD,NetBSD,OpenBSD,MacOSX)
- SGIIRIX
- Windows(Cygwin)While it is known to compile cleanly on
- Solaris
- AIX
2.APACHE
2.1.简述
Apache是世界排名第一的web服务器,根据所作的调查,世界上百分之五十以上的web服务器在使用apache。
Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物。
2.2.优点
- 几乎可以运行在所有的计算机平台上.
- 支持最新的http/1.1协议
- 简单而且强有力的基于文件的配置(httpd.conf).
- 支持通用网关接口(cgi)
- 支持虚拟主机.
- 支持http认证.
- 集成perl.
- 集成的代理服务器
- 可以通过web浏览器监视服务器的状态,可以自定义日志.
- 支持服务器端包含命令(ssi).
- 支持安全socket层(ssl).
- 具有用户会话过程的跟踪能力.
- 支持fastcgi
- 支持java servlets
1.3.操作系统
- Linux
- Windows
- 其他
3.NGINX
3.1.简述
Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx以事件驱动(epoll)的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡,有研究表明能支持高达 50,000个并发连接数。。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的mod_proxy也有一些问题并且很久没有更新。但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。
3.2.优点
- 处理静态文件,索引文件以及自动索引;
- 打开文件描述符缓冲;
- 无缓存的反向代理加速,简单的负载均衡和容错;
- FastCGI,简单的负载均衡和容错;
- 模块化的结构。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其它代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。
- Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率
- Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处的。就稳定性而言,nginx比lighthttpd更胜一筹。
- Nginx支持热部署。它的启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。
3.3.操作系统
- Linux
- Windows(移植版本)
- 其他
二.3种WEB服务器的比较:
server | Apache | Nginx | Lighttpd |
---|---|---|---|
Proxy代理 | 非常好 | 非常好 | 一般 |
Rewriter | 好 | 非常好 | 一般 |
Fcgi | 不好 | 好 | 非常好 |
热部署 | 不支持 | 支持 | 不支持 |
系统压力比较 | 很大 | 很小 | 比较小 |
稳定性 | 好 | 非常好 | 不好 |
安全性 | 好 | 一般 | 一般 |
技术支持 | 非常好 | 很少 | 一般 |
静态文件处理 | 一般 | 非常好 | 好 |
Vhosts虚拟主机 | 支持 | 不支持 | 支持 |
反向代理 | 一般 | 非常好 | 一般 |
Session sticky | 支持 | 不支持 | 不支持 |
建议方案:
- Apache后台服务器(主要处理php及一些功能请求 如:中文url)
- Nginx 前端服务器(利用它占用系统资源少得优势来处理静态页面大量请求,随着nginx功能得完善将使他成为今后web server得主流。)
- Lighttpd图片服务器