当前位置:   article > 正文

关于nginx

关于nginx

关于nginx

nginx [enginex] 是一个HTTP和反向代理服务器,也可用于邮件代理服务,由Igor Sysoev开发。在很长一段时间里,它运行在俄罗斯很多重负载的网站上,包括Yandex,Mail.Ru, VK和Rambler. 根据Netcraft(的数据),到2014年12月,nginx服务或代理了20.72%的网站。

代码和文档基于2-clause BSD-like license发布。商业支持来自 Nginx, Inc.

基本HTTP server特性

- 服务静态和index文件,autoindexing;open file descriptor cache;

- 使用缓存的加速反向代理;简单负载均衡和容错;

- 对FastCGI, uwsgi, SCGI,and memcached等服务的缓存加速支持;简单负载均衡和容错;

- 模块化的架构。包括过滤器,如gzipping,byte ranges, chunked responses, XSLT, SSI, and image transformation filter. 单页内包含的多个SSI(服务端嵌入)可以被并行处理,如果它们由代理或 FastCGI/uwsgi/SCGI服务处理;

- SSL和TLS SNI支持 

**** 注 ****

CGI 公共网关接口(Common GatewayInterface),HTTP服务器与机器上其他程序进行“交谈”(通信)的一种工具,其程序须运行在网络服务器上。CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。

FastCGI 是一个常驻(long-live)型的CGI, 其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。

WSGI  Web服务器网关接口(Python Web ServerGateway Interface) 是Python应用程序或框架和Web服务器之间的一种接口,已经被广泛接受, 它已基本达成它的可移植性方面的目标。

基于python的web项目的常见部署方法:

fcgi:用spawn-fcgi或者框架自带的工具对各个project分别生成监听进程,然后和http服务互动。

wsgi:利用http服务的mod_wsgi模块来跑各个project。

uWSGI 既不用wsgi协议也不用fcgi协议,主要特点是性能快,内存占用低。

SCGI简单通用网关接口,是一个CGI协议的替代品,类似于FastCGI, 但是它设计得更为容易实现。

**** 注 ****

其他HTTP server特性

- 基于名称和基于IP的虚拟服务

- Keep-alive和管道式连接支持

- 灵活的配置

- 重新配置和程序升级不影响客户端服务

- Access log formats, buffered log writing,fast log rotation, and syslog logging

- 3xx-5xx 错误码重定向

- 重写模块:URI changingusing regular expressions

- 基于不同的client地址执行不同的函数

- 基于客户端IP地址的访问控制,通过password(HTTP Basic authentication)及后续请求的结果;

- HTTP referer校验

- PUT, DELETE, MKCOL, COPY, 和MOVE方法

- FLV and MP4 流

- 响应速率限制

- 限制来自同一个地址同时连接和请求的数目

- 内嵌Perl

邮件代理服务特性

- 使用一个外部的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 and STLS 支持;

架构和扩展性

- 一个master和若干worker进程;worker进程运行在一个低权限用户下;

- 支持kqueue(FreeBSD 4.1+),epoll(Linux 2.6+), rt signals(Linux 2.2.19+), /dev/poll(Solaris 7 11/99+),event ports(Solaris 10), select, 和 poll;

- 对kqueue各种特性的支持包括EV_CLEAR, EV_DISABLE(临时取消事件), NOTE_LOWAT, EV_EOF, number of available data, error codes;

- sendfile (FreeBSD 3.1+, Linux 2.2+, MacOS X 10.5+), sendfile64 (Linux 2.4.21+), and sendfilev (Solaris 8 7/01+)支持;

- File AIO (FreeBSD 4.3+, Linux 2.6.22+);

- DIRECTIO (FreeBSD 4.4+, Linux 2.4+, Solaris2.6+, Mac OS X);

- Accept-filters (FreeBSD 4.1+, NetBSD5.0+) 和 TCP_DEFER_ACCEPT (Linux 2.4+) 支持;

- 10kinactive HTTP keep-alive 连接使用约2.5M内存;

- 保持最少的数据复制操作。

测试过的OS和平台

- FreeBSD 3 — 10 / i386; FreeBSD 5 — 10 /amd64;

- Linux 2.2 — 3 / i386; Linux 2.6 — 3 /amd64; Linux 3 / armv6l, armv7l, aarch64;

- Solaris 9 / i386, sun4u; Solaris 10 /i386, amd64, sun4v;

- AIX 7.1 / powerpc;

- HP-UX 11.31 / ia64;

- Mac OS X / ppc, i386;

- WindowsXP, Windows Server 2003.
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/619452
推荐阅读
相关标签
  

闽ICP备14008679号