关于nginx

 简介

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务和通用TCP / UDP代理服务器;
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器和通用TCP / UDP代理服务器;

功能

基本的HTTP服务器功能

  • 提供静态和索引文件,自动索引 ;
  •  带有缓存的加速反向代理; 负载平衡和容错 ;
  •  对FastCGI, uwsgi, SCGI和 memcached 服务器进行缓存的加速支持 ; 负载平衡和容错 ;
  • 模块化架构。过滤器包括 gzipping,字节范围,分块响应, XSLT, SSI和图像转换过滤器。如果由代理服务器或FastCGI / uwsgi / SCGI服务器处理单个页面中的多个SSI包含,则可以并行处理;
  •  SSL和TLS SNI支持;
  •  通过加权和基于依赖项的优先级 支持HTTP 2.0。

其他HTTP服务器功能

  • 基于名称和基于IP的虚拟服务器;
  •  管道连接支持;
  •  访问日志格式, 缓冲日志写入, 快速日志循环和 syslog日志 ;
  •  3xx-5xx错误代码重定向;
  •  重写模块:使用正则表达式更改URI;
  •  根据客户地址执行不同的功能 ;
  •  基于客户端IP地址,密码(HTTP基本身份验证)和子请求结果的访问控制 ;
  •  FLV 和 MP4 流媒体;
  •  响应率限制 ;
  •  限制来自一个地址的同时连接或请求的数量 ;
  •  基于IP的地理位置;
  •  拆分测试 ;
  •  请求镜像 ;
  •  嵌入式Perl ;
  •  njs脚本语言。

 邮件代理服务器功能

  •  使用外部HTTP 身份验证 服务器 将用户重定向到 IMAP 或 POP3服务器
  •  使用外部HTTP 身份验证 服务器的用户身份 验证以及到内部SMTP服务器的连接重定向 ;
  •  认证方式:
  •  POP3:USER / PASS,APOP,AUTH LOGIN / PLAIN / CRAM-MD5;
  •  IMAP:登录,授权登录/普通/ CRAM-MD5;
  •  SMTP:AUTH LOGIN / PLAIN / CRAM-MD5;
  •  SSL支持;
  •  STARTTLS和STLS支持。

TCP / UDP代理服务器功能

  •  TCP和UDP的通用代理;
  •  SSL和TLS SNI对TCP的支持;
  •  负载平衡和容错 ;
  • 基于客户地址的访问控制 ;
  •  根据客户地址执行不同的功能 ;
  •  限制 来自一个地址的同时连接数 ;
  •  访问日志格式, 缓冲日志写入, 快速日志循环和 syslog日志 ;
  •  基于IP的地理位置;
  •  拆分测试 ;
  •  njs脚本语言。

 架构和可扩展性

  •  一个主进程和多个子进程;工作进程可以再任何用户下运行;
  •  灵活的配置 ;
  •  重新配置 和升级可执行文件,而不会中断客户端服务;
  •  支持 kqueue(FreeBSD 4.1 +),epoll(Linux 2.6 +),/ dev / poll(Solaris 7 11/99 +),事件端口(Solaris 10),选择和轮询;
  •  支持各种队列功能,包括EV_CLEAR,EV_DISABLE(用于临时禁用事件),NOTE_LOWAT,EV_EOF,可用数据数,错误代码;
  •  支持各种epoll功能,包括EPOLLRDHUP(Linux 2.6.17 +,glibc 2.8+)和EPOLLEXCLUSIVE(Linux 4.5 +,glibc 2.24+);
  •  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内存;
  •  数据复制操作保持最少。

适用平台

  •  FreeBSD 3 — 12 / i386; FreeBSD 5 — 12 / amd64; FreeBSD 11 / ppc;
  •  FreeBSD 12 / ppc64;
  •  Linux 2.2-4 / i386;Linux 2.6-5 / amd64; Linux 3-4 / armv6l,armv7l,aarch64,ppc64le;
  •  Solaris 9 / i386,sun4u; Solaris 10 / i386,amd64,sun4v; Solaris 11 / x86;
  •  AIX 7.1 / PowerPC;
  •  HP-UX 11.31 / ia64;
  •  macOS / ppc,i386,x86_64;
  • Windows XP,Windows Server 2003,Windows 7,Windows 10。
上一篇:2009年的FreeBSD命令(转载的)


下一篇:Python和FreeBSD:即使在不同的进程中,threading.currentThread().ident也返回相同的值