DevOps: web服务器httpd简介及比较

一、Apache httpd 简介

Apache HTTPD又可以简称为httpd或者Apache,它是Internet使用最广泛的web服务器之一,使用Apache提供的web服务器是由守护进程httpd,通过http协议进行文本传输,默认使用80端口的明文传输方式,当然,后来,为了保证数据的安全和可靠性,又添加了443的加密传输的方式,Apache提供的服务器又被称为:补丁服务器,原因很简单,它是一款高度模块化的软件,想要给它添加相应的功能只需添加相应的模块,让其Apache主程序加载相应的模块,不需要的模块也可以不用加载,保证了Apache的简洁,轻便,高效性,当出现大量访问一个服务器是可以使用多种复用模式,保证了服务器能快速回应客户端的请求,如MPM,端口复用技术。

1. apache和httpd区别

从我们仅仅web服务器使用者的角度说的话,它们是同一个东西。在 Apache 的网站上有两种安装包下载httpd-2.0.50-i686-pc-linux-gnu.tar.gz 和 apache_1.3.33-i686-whatever-linux22.tar.gz。其实都是提供Web服务的,只是一个是早期版一个是新的版本模式。httpd是apache开源项目的一部分,如果只需要web服务器,现在只需安装httpd2.*就可以了。

和 “Apache” 的历史有关。可以参考官方介绍:http://httpd.apache.org/ABOUT_APACHE.html

早 期的Apache小组,现在已经成为一个拥有巨大力量的Apache软件基金会,而apache现在成为 apache基金会下几十种开源项目的标识。其中有一个项目做HTTP Server,httpd是HTTP Server的守护进程,在Linux下最常用的是Apache,所以一提到httpd就会想到Apache HTTP Server。他们把起 家的apache更名为httpd,也更符合其http server的特性。以前apache的http server在1.3的时候直接叫apache_1.3.37,现在2.*版本的都叫httpd_2.2.3。在Linux下最常用的是Apache,所 以一提到httpd就会想到Apache HTTP Server。

二、Nginx 简介

Nginx 是高效的 Web 服务器和反向代理服务器,可以用作负载均衡(当有 n 个用户访问服务器时,可以实现分流,分担服务器的压力),与 Apache 相比,Nginx 支持高并发,可以支持百万级的 TCP 连接,十万级别的并发连接,部署简单,内存消耗少,成本低,但 Nginx 的模块没有 Apache 丰富。Nginx 支持 uWSGI 的 uwsgi 协议,因此我们可以将 Nginx 与 uWSGI 结合起来,Nginx 通过 uwsgi_pass 将动态内容交给 uWSGI 处理。

1. Nginx 与 Apache 的异同

Nginx和Apache一样,都是一个HTTP服务器软件,功能实现上都采用模块化结构设计,都支持通用的语言接口,如PHP、Perl、Python等,同时还支持正、反向代理,虚拟主机,URL重写,压缩传输,SSL加密传输等。它们之间最大的差别是Apache处理速度很慢,且占用很多内存资源,而Nginx却恰恰相反;在功能实现上,Apache的所有模块都支持动、静态编译,而Nginx模块都是静态编译的,同时,Apache对Fcgi支持不好,而Nginx对Fcgi的支持非常的好;最重要的是,在处理连接方式上,Nginx支持epoll,而Apache却不支持;在大小上,Nginx安装包仅仅有几百K,和Nginx比起来Apache绝对是庞然大物。在了解了Nginx和Apache之间的异同点后基本知道了Nginx作为HTTP服务器的优势所在。

2. Nginx的优势

通过上面的简单介绍,Nginx作为HTTP服务器的优势是显而易见的,它有很多其它Web服务器无法比拟的性能和优势: 作为Web服务器,nginx处理静态文件、索引文件以及自动索引效率非常高。 作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度。 作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器,对外进行服务。同时支持简单的容错和利用算法进行负载均衡。 在性能方面,Nginx是专门为性能优化而开发的,在实现上非常注重效率。它采用内核Poll模型,可以支持更多的并发连接,最大可以支持对50 000个并发连接数的响应,而且占用很低的内存资源。 在稳定性方面,Nginx采取了分阶段资源分配技术,使得对CPU与内存的占用率非常低。Nginx官方表示Nginx保持10 000个没有活动的连接,这些连接只占2.5M内存,因此,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的。 在高可用性方面,Nginx支持热部署,启动速度特别迅速,因此可以在不间断服务的情况下,对软件版本或者配置进行升级,即使运行数月也无需重新启动,几乎可以做到7×24小时的不间断运行。

三、常用web服务器对比

对比项

Apache

Nginx

Lighttpd

Proxy代理

非常好

非常好

一般

Rewriter

非常好

一般

Fcgi

不好

非常好

热部署

不支持

支持

不支持

系统压力

很大

很小

比较小

稳定性

非常好

不好

安全性

一般

一般

静态文件处理

一般

非常好

反向代理

一般

非常好

一般

其他

参考: https://betheme.net/news/txtlist_i97314v.html?action=onClick