最近学习关于网站系统的搭建碰到了lighttpd,nginx,apache 这3 个平台的东西,apache 知道,似于IIS 的一个网站平台。
而对于lighttpd,nginx 第一次听到,在搜索里面的到了以下一个比较!转载下来和大家分享一下。
nginx 是一个小巧而高效的Linux 下的web 服务器软件。开发人员 Igor Sysoev 来自俄罗斯,nginx 的话其实已经在一些俄罗斯的大型网站上运行多年,相当的稳定,最近才在美国开始知名起来。
而另外一个热门的web 服务器软件是Lighttpd ,因为运行在Youtube 的后台,所以知名度很高。Lighttpd 特色在于它能做Flash streaming 和对fastcgi 的支持,这样对于Ruby on Rails 之类的程序提速不少,比起Apache 要好很多。
但是 nginx 要比 Lighttpd 更稳定,功能上并不弱于Lighttpd ,差不多什么都有,而且比Lighttpd 对于URL rewrite 的支持更完善一点。
不管是 nginx 还是 lighttpd, 对于用来提供静态文件都要比Apache 好很多很多 ,主要就是占用的内存小,Apache 和这两个小巧的服务器软件来比实在是个庞然大物啊。
即使是大部分内容动态生成的网站,仍免不了会有一些静态元素,比如图片、JS 脚本、CSS 等等,将Squid 放在Apache 或者Lighttp 前端后,反而会使性能下降,毕竟处理HTTP请求是Web 服务器的强项。而且已经存在于文件系统中的静态内容再在Squid 中缓存一下,浪费内存和硬盘空间。因此可以考虑将Lighttpd 再放在Squid 的前面,构成Lighttpd+Squid+Apache 的一条处理链,Lighttpd 在最前面,专门用来处理静态内容的请求,把动态内容请求通过proxy 模块转发给Squid ,如果Squid 中有该请求的内容且没有过期,则直接返回给Lighttpd 。新请求或者过期的页面请求交由Apache 中Web 程序来处理。经过Lighttpd 和Squid 的两级过滤,Apache 需要处理的请求将大大减少,减少了Web 应用程序的压力。同时这样的构架,便于把不同的处理分散到多台计算机上进行,由Lighttpd 在前面统一把关。
补充: Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务 器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络 安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。
Squid的发展历史相当悠久,功能也相当完善。除了HTTP外,对于FTP与HTTPS的支援也相当好,在3.0 测试版中也支援了IPv6。
选择高性能 web server
Apache是 LAMP 架构最核心的 web server, 开源,模块丰富,功能强大,稳定是它的绝对优势。
在美国前100个网站中,有49%的使用apache。可见其影响力。但是,有利有弊,apache的致命缺陷,就是多于臃肿,强大的功能,一定会带来性能上的损耗。面对这种情形,在市场上,有一支异军突起,那就是更轻量级的 web server - lighty(lighttpd)。官方为它定义的口号是 fly light。它具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块支持等特点。这让他在短时间内占据了14%以上的市场份额。并且有越来越多的人开始选择使用lighty作为前端 web server。到这里为之,其实高性能 web server 非 lighty 莫属。但更棒的是,依靠 gentoo 的高度定制化,我们还可以进一步提升 lighty 的性能潜力-那就是定制 lighty。
选择高性能 script language
能与 lighty 结合的脚本语言,主要有 ruby, php, python, perl。方式主要是通过 fast-cgi 来访问。只从性能角度对比几种语言:
不难看出,python 是此次测试中,性能最好的脚本语言。
动态处理方面有绝对优势。对比 php , 前者,可以更快的渲染输出内容,并由经lighty, 高速flush缓存到浏览器。
值得一提的是, douban.com 也是使用 python 作为应用服务器。
总结一下,什么是 LLMP?
LLMP 是 Linux Lighty Mysql Python 的组合,作为一种高性能的网站架构设计存在。
什么是高性能的LLMP?
LLMP并不意味着高性能,只是比其他架构,更有性能的提升潜力。高性能的LLMP,需要从系统,程序,硬件各个层面上协同进行的。