预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

WEB服务器1.Apache服务器和nginx的优缺点:我们之前大量使用Apache来作为HTTPServer。Apache具有很优秀的性能,而且通过模块可以提供各种丰富的功能。1)首先Apache对客户端的响应是支持并发的,运行httpd这个daemon进程之后,它会同时产生多个孩子进程/线程,每个孩子进程/线程分别对客户端的请求进行响应;2)另外,Apache可以提供静态和动态的服务,例如对于PHP的解析不是通过性能较差的CGI实现的而是通过支持PHP的模块来实现的(通常为mod_php5,或者叫做apxs2)。3)缺点:因此通常称为Apache的这种Server为process-basedserver,也就是基于多进程的HTTPServer,因为它需要对每个用户请求创建一个孩子进程/线程进行响应;这样的缺点是,如果并发的请求非常多(这在大型门户网站是很常见的)就会需要非常多的线程,从而占用极多的系统资源CPU和内存。因此对于并发处理不是Apache的强项。4)解决方法:目前来说出现了另一种WebServer,在并发方面表现更加优越,叫做asynchronousservers异步服务器。最有名的为Nginx和Lighttpd。所谓的异步服务器是事件驱动程序模式的event-driven,除了用户的并发请求通常只需要一个单一的或者几个线程。因此占用系统资源就非常少。这几种又被称为lightweightwebserver。举例,对于10,000的并发连接请求,nginx可能仅仅使用几M的内存;而Apache可能需要使用几百M的内存资源。2.实际中单一的使用:1)关于单一使用Apache来作为HTTPServer的情况我们不用再多做介绍,非常常见的应用;上面我们介绍到Apache对于PHP等服务器端脚本的支持是通过自己的模块来实现的,而且性能优越。2)我们同样可以单单使用nginx或者lighttpd来作为HTTPServer来使用。nginx和lighttpd和Apache类似都通过各种模块可以对服务器的功能进行丰富的扩展,同样都是通过conf配置文件对各种选项进行配置。对于PHP等,nginx和lighttpd都没有内置的模块来对PHP进行支持,而是通过FastCGI来支持的。Lighttpd通过模块可以提供CGI,FastCGI和SCGI等服务,LighttpdiscapableofautomaticallyspawningFastCGIbackendsaswellasusingexternallyspawnedprocesses.nginx则没有自己提供处理PHP的功能,需要通过第三方的模块来提供对PHP进行FastCGI方式的集成。nginxhasmodulesupportforFastCGIviaabuilt-inmodule,SCGIandWSGIvia3rdPartymodule.Theusermustbeabletospawntheprocessesseparatelybecausenginxisnotabletoautomaticallyspawnthem[9].nginxdoesnotsupportnormalCGIapplications[10],whichisactuallyasecuritybenefit.Lighttpdvsnginx:http://www.wikivs.com/wiki/Lighttpd_vs_nginx3.反向代理ReverseProxy:0)代理服务器的概念proxyserver:代理服务器的概念很容易理解,就是通常作为两台机器中间的机器,需要提供的功能往往有:缓存caching,安全,负载均衡loadbanlancing。所谓的负载均衡就是,很多机器使用一个代理的时候,代理服务器需要对各个服务器进行均衡。我们常见的代理是正向的代理,例如我们机房有20台电脑要上网,现在只有一个电脑可以上网,那么可以使用这台电脑作为代理服务器,所有通过网络的数据传输都要经过该代理服务器。而反向代理,是和正向代理相反的,正向代理针对服务接收方用户来说,反向代理或者叫做服务器端代理是针对服务器端的,意思是有多台服务器,反向代理服务器对用户的请求代理发送给其中的一台服务器进行处理。Proxyserver:http://en.wikipedia.org/wiki/Proxy_server1)实际中对于一个大型网站,我们通常使用很多台sever来构成一个cluster来对用户的各种请求进行响应。因此通常需要一台或者多台反向代理服务器来对多台Server进行服务。这个反向代理服务器需要提供的功能一般都包括:安全方面;缓存压缩功能;负载均衡功能;Reverseproxy:http://en.wikipedia