apache是什么文件夹,apache是什么服务器

  

  

概述

  

  

  今天主要对比这几款主流WEB服务器:lighttpd、apache、nginx   

  

  

1、LIGHTTPD

  

  

  1.1简述   

  

  Lighttpd是德国主导的开源Web服务器软件,具有内存开销极低、cpu利用率低、效率好、模块丰富等特点。支持FastCGI、CGI、Auth、output compress)、URL重写、别名等重要功能。   

  

     

  

  当它使用FastCGI运行PHP时,会使用少量的PHP进程来应对大量的并发。   

  

  1.2 优点   

  

  1)从稳定性的角度来看,FastCGI作为CGI从一个独立的进程池中运行。如果单个进程死亡,系统可以很容易地丢弃它,然后重新分配一个新的进程来运行逻辑;   

  

  2)从安全角度来说,fastcgi和主机服务器是完全独立的,FastCGI怎么宕机都不会宕机服务器;   

  

  3)从性能上看,FastCGI将动态逻辑处理从服务器中分离出来,将重负载的IO处理留给主机服务器,让主机服务器专注于IO。对于一个普通的动态网页,逻辑处理可能只是很小的一部分,大量的图片等静态IO处理根本不需要逻辑程序的参与(注1)   

  

  4)扩展性方面,FastCGI是一个中性的技术标准,可以完全支持任何语言(php、java、python……)编写的处理器   

  

  1.3 支持操作系统   

  

  Linux(用于FC3、SuSE、Debian、Gentoo、PLD-Linux、OpenWRT的二进制软件包)BSD(FreeBSD、NetBSD、OpenBSD、MacOSX)SGIIRIXWindows(Cygwin)虽然众所周知可以干净地编译onsolisaix

2、APACHE

  

  

  2.1 简述   

  

  Apache是世界上排名第一的网络服务器。根据调查,世界上超过50%的网络服务器正在使用Apache。   

  

     

  

  Apache是一个基于流程的结构。进程比线程消耗更多的系统开销,所以不适合多处理器环境。因此,当扩展Apache网站时,通常会添加服务器或集群节点,而不是处理器。亚马逊、雅虎等世界上很多著名的网站!W3财团、金融时报等。都是阿帕奇的产品。   

  

  2.2 优点   

  

  它可以在几乎所有的计算机平台上运行。它支持最新的http/1.1协议,简单而强大的基于文件的配置(httpd.conf)。它支持通用网关接口(cgi)和虚拟主机。它支持http认证。它集成了perl。集成的代理服务器可以通过web浏览器监控服务器的状态,可以定制日志,支持服务器端的include命令(ssi),支持安全套接字层(ssl),能够跟踪用户会话,支持fastcgi和支持Java servlets2.3 支持操作系统.   

  

  LinuxWindows其他

3、NGINX

  

  

  3.1简述   

  

  Nginx是俄罗斯人写的一个非常轻量级的HTTP服务器,Nginx,读作“engine X”,是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx是俄罗斯人伊戈尔塞索耶夫为俄罗斯访问量第二大的网站Rambler.ru开发的。Nginx是一个轻量级Web服务器/反向代理服务器和电子邮件(IMAP/POP3)代理服务器,它是在一个类似BSD的协议下分发的。它的特点是内存少,并发性强。事实上,nginx的并发性在同类型的web服务器中确实表现不错。nginx网站在中国大陆的用户有百度、JD.COM、新浪、网易、腾讯、淘宝等。   

  

  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操作系统

  

LinuxWindows(移植版本)其他3.4 推荐架构

  

nginx作为最前端的web cache系统,通常的架构如下

  

  

这个结构的优点:

  

可以使用nginx前端进行诸多复杂的配置,这些配置从前在squid是没法做或者做起来比较麻烦的,比如针对目录的防盗链。nginx前端可以直接转发部分不需要缓存的请求。因为nginx效率高于squid,所以某些情况下可以利用nginx的缓存来减轻squid压力。可以实现url hash等分配策略可以在最前端开启gzip压缩,这样后面的squid缓存的纯粹是无压缩文档,可以避免很多无谓的穿透。因为nginx稳定性比较高,所以lvs不需要经常调整,通过nginx调整就可以。squid的文件打开数按默认的1024就绰绰有余,不过处理的请求可一个都不会少。可以启用nginx的日志功能取代squid,这样做实时点击量统计时可以精确定位到url,不必要再用低效率的grep来过滤。因为nginx的负载能力高于squid,所以在用lvs分流时可以不必分得特别均衡,出现单点故障的几率比较低。nginx和squid配合搭建的web服务器前端系统架构:

  

  

前端的lvs和squid,按照安装方法,把epoll打开,配置文件照搬,基本上问题不多。

  

这个架构和app_squid架构的区别,也是关键点就是:加入了一级中层代理,中层代理的好处实在太多了:

  

gzip压缩:压缩可以通过nginx做,这样,后台应用服务器不管是apache、resin、lighttpd甚至iis或其他古怪服务器,都不用考虑压缩的功能问题。负载均衡和故障屏蔽:nginx可以作为负载均衡代理使用,并有故障屏蔽功能,这样,根据目录甚至一个正则表达式来制定负载均衡策略变成了小case。方便的运维管理,在各种情况下可以灵活制订方案。权限清晰:这台机器就是不写程序的维护人员负责,程序员一般不需要管理这台机器,这样假如出现故障,很容易能找到正确的人。对于应用服务器和数据库服务器,最好是从维护人员的视线中消失,我的目标是,这些服务只要能跑得起来就可以了,其它的事情全部可以在外部处理掉。

3种WEB服务器的比较

以下是针对这三个web服务器的一些比较:

  

  

从上面的分析比较建议的一种方案是:

  

Apache后台服务器(主要处理php及一些功能请求 如:中文url)Nginx 前端服务器(利用它占用系统资源少得优势来处理静态页面大量请求)Lighttpd图片服务器后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

  

相关文章