Nginx应用场景及特性

概述

Nginx是http和反向代理服务器,邮件代理服务器,以及lgor Sysoev最初编写的通用TCP/UDP 代理服务器。

基本的HTTP服务器功能

  • 提供静态和索引文件,自动索引; 打开文件描述符缓存;
  • 加速反向代理和缓存;负载均衡和容错;
  • 通过缓存fastcgi, uwsgi, scgi和memcached服务器来加速支持;负载均衡和容错;
  • 模块化架构。过滤器包括gzip,字节范围,分块相应,xslt,ssi和图像变换过滤器。如果由代理或fastcgi/uwsgi/scgi服务器处理,则单页内的多个ssi包含可以并行处理;
  • SSL和TLS SNI支持。
  • 支持具有加权和依赖关系优先级的HTTP/2.

其他 HTTP 服务器功能

  • 基于名称和基于 IP 的虚拟服务器;
  • 保持活动和管道连接的支持;
  • 访问日志格式,缓冲日志写入,快速日志轮换和 syslog 日志记录;
  • 3xx-5xx 错误代码重定向;
  • 重写模块:使用正则表达式更改 URI;
  • 根据客户端地址执行不同的功能;
  • 根据客户端 IP 地址,密码(HTTP Basic 认证)和子请求结果进行访问控制;
  • HTTP 引用的验证
  • PUT,DELETE,MKCOL,COPY 和 MOVE 方法;
  • FLV 和 MP4 流媒体;
  • 响应速度限制;
  • 限制来自一个地址的同时连接或请求的数量;
  • 基于 IP 的地理定位;
  • A/B测试;
  • 嵌入式Perl
  • nginScript。

邮件代理服务器功能

  • 使用外部 HTTP 认证服务器将用户重定向到 IMAP 或 POP3 服务器;
  • 使用外部 HTTP 认证服务器进行用户认证,并将连接重定向到内部 SMTP 服务器;
  • 认证方式:
  • POP3:USER / PASS,APOP,AUTH LOGIN / PLAIN / CRAM-MD5;
  • IMAP:LOGIN,AUTH LOGIN / PLAIN / CRAM-MD5;
  • SMTP:AUTH LOGIN / PLAIN / CRAM-MD5;
  • SSL 支持;
  • STARTTLS 和 STLS 支持。

TCP/UDP代理服务器功能

  • TCP 和 UDP 的通用代理;
  • SSL 和 TLS SNI 支持 TCP;
  • 负载均衡和容错;
  • 基于客户地址的访问控制;
  • 根据客户端地址执行不同的功能;
  • 限制来自一个地址的同时连接数;
  • 访问日志格式,缓冲日志写入,快速日志轮换和 syslog 日志记录;
  • 基于 IP 的地理定位;
  • A/B 测试;

架构和可扩展性

一个主和几个工作进程; 工作进程在非特权用户下运行;

  • 灵活配置;
  • 重新配置和升级可执行文件,而不会中断客户端服务;
  • 支持 kqueue(FreeBSD 4.1+),epoll(Linux 2.6+),/ dev / poll(Solaris 7 11/99 +),事件端口
    (Solaris 10),select 和 poll;
  • 支持各种 kqueue 功能,包括 EV_CLEAR,EV_DISABLE(临时禁用事件),NOTE_LOWAT,
    EV_EOF,可用数据数,错误代码;
  • 支持各种 epoll 功能,包括 EPOLLRDHUP(Linux 2.6.17+,glibc 2.8+)和 EPOLLEXCLUSIVE(Linux
    4.5+,glibc 2.24+);
    King 老师 QQ:3147964070
  • 支持 sendfile(FreeBSD 3.1+,Linux 2.2+,macOS 10.5+),sendfile64(Linux 2.4.21+)和
    sendfilev(Solaris 8 7/01 +);
  • 文件 AIO(FreeBSD 4.3+,Linux 2.6.22+);
  • DIRECTIO(FreeBSD 4.4+,Linux 2.4+,Solaris 2.6+,macOS);
  • 接受过滤器(FreeBSD 4.1+,NetBSD 5.0+)和TCP_DEFER_ACCEPT(Linux 2.4+)支持;
  • 10,000 个不活动的 HTTP 保持连接大约需要 2.5M 内存;
  • 数据复制操作保持最小。

Nginx特性

NGINX 有什么不同? NGINX 使用可扩展的事件驱动架构,而不是更传统的过程驱动架构。这需要更低的内存占用,并且当并发连接扩大时,使内存使用更可预测。在传统的 Web 服务器体系结构中,每个客户端连接作为一个单独的进程或线程处理,随着网站的流行度增加,并发连接数量的增加,Web 服务器减慢,延迟了对用户的响应。从技术的角度来看,产生一个单独的进程/线程需要将 CPU 切换到新的任务并创建一个新的运行时上下文,消耗额外的内存和 CPU 时间,从而对性能产生负面影响。NGINX 开发的目标是实现 10 倍以上的性能,优化服务器资源的使用,同时也能够扩展和支持网站的动态增长。 因此,NGINX 成为最知名的模块化,事件驱动,异步,单线程 Web 服务器和 Web 代理之一。

Nginx 是一个高性能的 Web 和反向代理服务器, 它具有很多非常优越的特性:

web服务器

相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx为我们选择了 epoll and kqueue 作为开发模型。

负载均衡

Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP 代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。

邮件代理服务器

Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。Nginx 安装非常的简单,配置文件 非常简洁(还能够支持 perl 语法),Bugs 非常少的服务器:Nginx 启动特别容易,并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

小结

本篇主要写了nginx的基本特性和一些代理服务器,比如HTTP服务器,Web服务器代理,邮件代理服务器,TCP/UDP代理服务器等等。通过本篇的学习,可以了解nginx的一些通用功能,在我们需要的时候,很快的选择使用它。感兴趣,一起来学习学习。OK,结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值