从零开始学nginx(一):为什么要选择nginx

从零开始学nginx(一):为什么要选择nginx

以《深入理解Nginx》为基础,记录从零开始学习Nginx,作为一个系列记录更新

web服务器

web服务器是通过HTTP协议处理用户web请求的程序。除了Nginx外,主流的web服务器有:Apche、Lighttpd、Tomcat、Jetty、IIS。由于设计阶段和资源的限制,各自都有其定位和不同的发展方向。

  • Tomcat和Jetty面向Java,先天为重量级web服务器,性能比较低
  • IIS只能在Windows操作系统上运行。而Windows作为服务器在稳定性和安全性等差距导致其应用受到局限
  • Apche发展周期长,稳定、开源、跨平台使其成为当前第一大web服务器,但是其设计之初就被设置为一个重量级的服务器,无法满足大型服务的高性能需求
  • Lighttpd和Nginx一样都是轻量级、高性能的web服务器,欧美开发者比较钟爱Lighttpd,国内公司更偏向Nginx。

附:
重量级web服务器:每个请求用一个进程去进行服务,当并发量大的时候,会占用大量的cpu和内存资源。
轻量级web服务器:与重量级web服务器相对,当请求连接的状态发生变化时,会呼叫时间分发器来处理连接变化,由于http请求多数时间处于等待状态,因此可以用少量进程处理大量的连接。

Nginx的特点

Nginx广泛国内大流量的网站,包括腾讯、网易、淘宝等。Nginx的优点也可以说是解决其余web服务器的缺点,包括可迁移性、大并发高性能、可扩展性等。

  1. 响应快
    正常情况以及高并发时均能很快地响应请求

  2. 高扩展性
    Nginx由一系列不同功能、不同层次类型的耦合度极低的模块组成,并嵌入到二进制文件中执行。因此第三方模块可以与官方模块一样具备优秀的性能,用定制模块来充分挖掘Nginx的潜能也是一大流行趋势

  3. 高可靠性
    核心框架代码、模块设计简洁可靠,worker进程出错时master进程可以快速拉起新的worker子进程提供服务

  4. 低内存消耗
    少量进程处理大量的连接,减少内存资源的分配。一般情况下,10000个非活跃的HTTP keep-alive连接在Nginx中仅消耗2.5MB内存。

  5. 单机支持100000以上的并发连接
    由于进程少开销低,理论上Nginx连接的并发数取决于内存。

  6. 热部署
    master管理进程与worker工作进程分离,使得Nginx在提供服务的同时升级Nginx的可执行文件、配置项或者日志文件等功能

  7. 最自由的BSD许可协议
    不仅允许用户免费使用Nginx,还允许用户自己直接修改源码并发布。

由于官方模块和第三方模块众多,Nginx还拥有其余的特性,但是其区别于其余的web服务器在于支持高并发请求的同时保持高效的服务

你可能感兴趣的:(nginx)