web应用服务器 有哪些 的用途


Time:2023-05-21 01:37:20

关于web应用服务器的问题,我们总结了以下几点,给你解答:

web应用服务器


web应用服务器

概述

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

1、LIGHTTPD

1.1简述

​ Lighttpd 是一个德国人领导的开源Web服务器软件,具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。支持FastCGI, CGI, Auth,输出压缩(output compress), URL重写, Alias等重要功能。

它使用FastCGI方式运行PHP时,将使用很少的PHP进程响应很大的并发量。

1.2 优点

1)从稳定性上看,FastCGI是以独立的进程池运行来CGI,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑;

2)从安全性上看, FastCGI和宿主的server完全独立, fastcgi怎么down也不会把server搞垮;

3)从性能上看, FastCGI把动态逻辑的处理从server中分离出来,大负荷的IO处理还是留给宿主server,这样宿主server可以一心一意作IO,对于一个普通的动态网页来说,逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1)

4)从扩展性上讲,FastCGI是一个中立的技术标准,完全可以支持任何语言写的处理程序(php,java,python…)

1.3 支持操作系统

Linux(binary packages for FC3,SuSE,Debian,Gentoo,PLD-Linux,OpenWRT)BSD(FreeBSD,NetBSD,OpenBSD,MacOSX)SGIIRIXWindows(Cygwin)While it is known to compile cleanly onSolarisAIX2、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

2.3 支持操作系统

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

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方面的内容,感兴趣的朋友可以关注下~

web应用服务器的用途


web应用服务器的用途

当前,WebService是一个热门话题。但是,WebService究竟是什么?什么情况下应该用WebService?什么情况下不应该用WebService?是需要我们正确认识的。
  Web Service 是一种新的web应用程序分支,他们是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。
  实际上,WebService的主要目标是跨平台的可互操作性。为了达到这一目标,WebService完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。由此可以看出,在以下三种情况下,使用WebService会带来极大的好处。
  长项一:跨防火墙的通信
  如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。
长项二:应用程序集成
  企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。通过WebService,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。
  例如,有一个订单登录程序,用于登录从客户来的新订单,包括客户信息、发货地址、数量、价格和付款方式等内容;还有一个订单执行程序,用于实际货物发送的管理。这两个程序来自不同软件厂商。一份新订单进来之后,订单登录程序需要通知订单执行程序发送货物。通过在订单执行程序上面增加一层WebService,订单执行程序可以把“AddOrder”函数“暴露”出来。这样,每当有新订单到来时,订单登录程序就可以调用这个函数来发送货物了。
  长项三:B2B的集成
  用WebService集成应用程序,可以使公司内部的商务处理更加自动化。但当交易跨越供应商和客户、突破公司的界限时会怎么样呢?跨公司的商务交易集成通常叫做B2B集成。
  WebService是B2B集成成功的关键。通过WebService,公司可以把关键的商务应用“暴露”给指定的供应商和客户。例如,把电子下单系统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票。当然,这并不是一个新的概念,EDI(电子文档交换)早就是这样了。但是,WebService的实现要比EDI简单得多,而且WebService运行在Internet上,在世界任何地方都可轻易实现,其运行成本就相对较低。不过,WebService并不像EDI那样,是文档交换或B2B集成的完整解决方案。WebService只是B2B集成的一个关键部分,还需要许多其它的部分才能实现集成。
  用WebService来实现B2B集成的最大好处在于可以轻易实现互操作性。只要把商务逻辑“暴露”出来,成为WebService,就可以让任何指定的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用什么开发语言。这样就大大减少了花在B2B集成上的时间和成本,让许多原本无法承受EDI的中小企业也能实现B2B集成。
 短处一:单机应用程序
  目前,企业和个人还使用着很多桌面应用程序。其中一些只需要与本机上的其它程序通信。在这种情况下,最好就不要用WebService,只要用本地的API就可以了。
短处二:局域网的同构应用程序
  在许多应用中,所有的程序都是用VB或VC开发的,都在Windows平台下使用COM,都运行在同一个局域网上。例如,有两个服务器应用程序需要相互通信,或者有一个Win32或WinForm的客户程序要连接局域网上另一个服务器的程序。在这些程序里,使用DCOM会比SOAP/HTTP有效得多。
    总之,只要从应用程序结构的角度看,有别的方法比WebService更有效、更可行,那就不要用WebService

web应用服务器有哪些


web应用服务器有哪些

Apache

Apache
仍然是世界上用的最多的
Web
服务器,市实菜非另字感酒世理场占有率达
60%
左右。它源于
NCSAhttpd
服务器,当
NCSA
WWW
服务器项目来自停止后,那些使用
NCSA
WWW
服务器的人案丰田划说绍争们开始交换用于此服务器的补丁,这也是
apache
名称
的由来
武判环并灯多宪快点(pache
补丁
)
。世界上很多著名的网站都是
Apache
的产物,它的成功之处主要在于它的源代码开放、有一支
开放的开发队伍、支持跨平台的应用
(
可以运行在几乎草所有的
Unix

Windows

Linux
系统平台上
)
以及它的可移植性
等方面。

官方网站:
http://ww解著病被渐记听临右系w.***.org

下载地址:
http://www.***.com/Server/Soft/200808/01245.html

T
omcat

Tomcat
是一个开放源代码、运行
servle以销盟商t

JSP

Web
应用软件的基于
Java

Web
应用软件容器。
Tomc严著套加与清at
Server
是根据
servlet

JSP
规范进行执行的,因此我们就可以说
Tomcat
Server
也实行了
Apache-Jakarta
规范且比绝大多数
商业应用软件服务器要好。

To绝急手行深灯立记点需mcat

Java
Servlet
2.2

JavaSer继充丰费因ver
Pages
1.1
技术的标准实现,是基于
Ap联ache
许可证下开发由钟的自由软件。
Tomcat
是完全重写的
Servlet API 2.2

JSP 1.1
兼容的
Servlet/JSP
容器。
Tomcat
使用了
JServ
的一些代码,
特别是
叶量口保劳约量算操Apache
服务适配器。随着
Catalina
Servlet
引擎的出现,
Tomcat
第四版号的性能得到提升,使得它成为一个值得考虑的
Servlet/JSP
容器,因此目前许多
WEB
服务器都是采用
动营Tomcat


官方网站:
http://tomcat.***.org

下载地址:
http://www.***.com/Server/Soft/200808/点02250.html

小型
WEB
服务器



micro_httpd - really small HTTP server


特点:

*
支持安全的

..
上级目录过滤

*
支持通用的
MIM朝E
类型

*
支持简单的目录

*
支持目录列表

*
支持使用

index复妈争青术土去河双.html
作为首页

* Trailing-slash redirection

应费天收范环连易致识*
程序总共代码才
200
多行

这个
httpd
适合学习简单的
Web Server
编写学习,
因为它只有一个简单的框架,
只能够处理简单的静态页,可以
考虑用来放静态页。

官方地址:
http://www.***.com/software/micro_httpd/

下载地址:
http://www.***.com/software/micro_httpd/micro_httpd_12dec2005.***.gz



mini_httpd - small HTTP server


特点:

*
支持
GET

HEAD

浓POST
方法

*
支持
CGI
功能

*
支持基本的验证功能

*
支持安全

..
上级目录功能

*
支持通用的
MIME
类型

*
支持目录列表功能

*
支持使用

index.html, index.htm, ***.cgi
作为首页

*
支持多个根目录的虚拟主机

*
支持标准日志记录

*
支持自定义错误页

* Trailing-slash redirection

mini_httpd
也是相对比较适合学习使用,大体实现了一个
Web
Server
的功能,支持静态页和
CGI
,能够用来放
置一些个人简单的东西,不适宜投入生产使用。

官方地址:
http://www.***.com/software/thttpd/

下载地址:
http://www.***.com/software/mini_httpd/mini_httpd-1.***.gz



thttpd - tiny/turbo/throttling HTTP server


thttpd
中是一个简单
,
小型
,
轻便
,
快速和安全的
http
服务器
.

简单:它能够支持
HTTP/1.1
协议标准,或者超过了最低水平

小巧:它具有非常少的运行时间,因为它不
fork
子进程来接受新请求,并且非常谨慎的分配内存(性能对比表:
http://www.***.com/software/thttpd/benchmarks.html


便携:它能够在大部分的类
Unix
系统上运行,包括
FreeBSD, SunOS 4, Solaris 2, BSD/OS, Linux, OSF
等等

快速:它的速度要超过主流的
Web
服务器(
Apache, NCSA, Netscape

,在高负载情况下,它要快的多

安全:它努力的保护主机不受到攻击,不中断服务器

thttpd
类似于
lighttpd

对于并发请求不使用
fork()
来派生子进程处理,
而是采用多路复用
(Multiplex)
技术来实现。
因此效能很好。同时它还有一个特点就是基于
URL
的文件流量限制,这对于下载的流量控制而言是非常方便的。象
Apache
就必须使用插件实现,效率较
thttpd
低。

thttpd

lighttpd
类似,适合静态资源类的服务,比如图片、资源文件、静态
HTML
等等的应用,性能应该比较
好,同时也适合简单的
CGI
应用的场合。

官方地址:
http://www.***.com/software/thttpd/

下载地址:
http://www.***.com/software/thttpd/thttpd-2.***.gz



lighttpd - light footprint + httpd = LightTPD


Lighttpd
是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好
并且灵活的
web server
环境。具有非常低的内存开销,
cpu
占用率低,效能好,以及丰富的模块等特点。

lighttpd
是众多
OpenSource
轻量级的
web
server
中较为优秀的一个。支持
FastCGI,
CGI,
Auth,
输出压缩
(output
compress), URL
重写
, Alias
等重要功能,

Apache
之所以流行,
很大程度也是因为功能丰富,

lighttpd
上很多功能
都有相应的实现了,这点对于
apache
的用户是非常重要的,因为迁移到
lighttpd
就必须面对这些问题。

实用起来
lighttpd
确实非常不错,
apache
主要的问题是密集并发下,
不断的
fork()
和切换,
以及较高
(相对于

lighttpd
而言)的内存占用,使系统的资源几尽枯竭。而
lighttpd
采用了
Multiplex
技术,代码经过优化,体积非常小,资源
占用很低,而且反应速度相当快。

利用
apache

rewrite
技术,将繁重的
cgi/fastcgi
任务交给
lighttpd
来完成,充分利用两者的优点,现在那台服
务器的负载下降了一个数量级,而且反应速度也提高了一个甚至是
2
个数量级!

本文拓展问题:

web应用服务器tomcatweb应用服务器的定义web应用服务器容器web应用服务器