WEB服务器

405 阅读6分钟

一、什么是web服务器

一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以处理浏览器Web客户端请求并返回相应响应,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载,主要功能是提供网上信息浏览服务

  • 服务器是一种被动程序:只有当 Internet 上运行其他计算机中的浏览器发出的请求时,服务器才会响应。
  • Internet 上的服务器也称为 Web 服务器,是一台在 Internet 上具有独立 IP 地址的计算机,可以向 Internet 上的客户机提供 WWW、Email 和 FTP 等各种 Internet 服务。
  • 当 Web 浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用 HTTP(超文本传输协议)与客户机浏览器进行信息交流,这就是人们常把它们称为 HTTP 服务器的原因。

二、web服务器有哪些

目前最主流的Web服务器是:IISApacheNginx 、Tomcat、Lighttpd、Tengine。

1、IIS

  • IIS是“Internet Information Services”的英文缩写,即“互联网信息服务”,是由微软公司提供的,基于运行“Microsoft Windows操作系统”的互联网基本服务,
  • IIS是一种Web(网页)服务组件,其中包括“Web服务器、FTP服务器、NNTP服务器和SMTP服务器”,分别用于“网页浏览、文件传输、新闻服务和邮件发送”等方面,它使得在网络上(包括互联网和局域网)发布信息成为一件很容易的事情。
  • IIS是我们网站用的最普遍的web服务器,IIS允许在公共网络或者局域网络上发布信息,使IIS成为目前使用最广的web服务器之一。我们经常使用的网站很多都是建立在IIS的平台上进行运营。

2、Apache(阿帕奇)

  • Apache(阿帕奇)是世界上使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机操作系统平台上,由于它的“跨平台”和“安全性”,因而被广泛使用,是最流行的Web服务器端软件之一。
  • 它快速、可靠并且可通过简单的API(应用程序编程接口)扩充,将Perl/Python(计算机程序语言)等解释器编译到服务器中。Apache中文音译为“阿帕奇”,是北美印第安人的一个部落,叫“阿帕奇族”。
  • 作为目前世界上使用人数最多的Web服务器之一,很多著名的网站,都是Apache(阿帕奇)的产物。因为Apache(阿帕奇)的源代码开放功能,几乎能让它在Unix、Windows、Linux等大多数操作系统平台上得以应用。
  • 由于Apache(阿帕奇)是“自由软件”,所以会不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache(阿帕奇)的特点是简单、速度快、性能稳定,并可做“代理服务器”来使用。

**3、Nginx **

  • Nginx是一个高性能的“HTTP”和“反向代理”web服务器。
  • Nginx是一款轻量级的“Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器”, 在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上Nginx的并发能力,确实在同类型的网页服务器中表现较好。
  • Nginx是一个很强大的高性能Web服务器和反向代理服务服务器,在连接高并发的情况下,Nginx是Apache(阿帕奇)服务不错的替代品,能够支持高达 50000 个并发连接数的响应。

4、Tomcat

  • Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的web应用软件容器,Tomcat server是根据servlet和jsp规范执行的。

5、Lighttpd

  • Lighttpd 是一个德国人领导的开源Web服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点,属于轻量级WEB服务器。。
  • Lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI,CGI,Auth,输出压缩(output compress),URL重写,Alias等重要功能;而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用户是非常重要的,因为迁移到lighttpd就必须面对这些问题。

6、Tengine

Tengine是nginx的加强版封装版,淘宝开源

  • 动态模块加载(DSO)支持。加入一个模块不再需要重新编译整个Tengine;

  • 支持SO_REUSEPORT选项,建连性能提升为官方nginx的三倍;

  • 支持SPDY v3协议,自动检测同一端口的SPDY请求和HTTP请求;

  • 流式上传到HTTP后端服务器或FastCGI服务器,大量减少机器的I/O压力;

  • 更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名;

  • 输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;

  • 支持设置proxy、memcached、fastcgi、scgi、uwsgi在后端失败时的重试次数

  • 动态脚本语言Lua支持。扩展功能非常高效简单;

  • 支持管道(pipe)和syslog(本地和远端)形式的日志以及日志抽样;

  • 支持按指定关键字(域名,url等)收集Tengine运行状态;

  • 组合多个CSS、JavaScript文件的访问请求变成一个请求;

  • 自动去除空白字符和注释从而减小页面的体积

三、主流web服务器的优缺点

四、建议方案

Apache 后台服务器(主要处理php及一些功能请求 如:中文url)

Nginx 前端服务器(利用它占用系统资源少得优势来处理静态页面大量请求)

Lighttpd 图片服务器

五、发展趋势

Netcraft 公司官网每月公布的全球 Web 服务器调查报告“Web Server Survey”是当前人们了解全球网站数量以及服务器市场分额情况的主要参考依据,2020 年 7 月份的报告目前已经发布。