nginx

优质
小牛编辑
131浏览
2023-12-01

nginx [engine x]是Igor Sysoev编写的一个HTTP和反向代理服务器,另外它也可以作为邮件代理服务器。 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括YandexMail.RuVKontakte,以及Rambler。据Netcraft统计,在2012年8月份,世界上最繁忙的网站中有11.48%使用Nginx作为其服务器或者代理服务器。部分成功案例请见: NetflixWordpress.comFastMail.FM

Nginx的源码使用的许可为两条款类BSD协议

基本的HTTP服务器特性

其他的HTTP服务器特性

邮件代理服务器特性

  • 使用外部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支持。

架构和扩展性

  • 一个主进程和多个工作进程,工作进程以非特权用户运行;
  • 支持的事件机制: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,可用数据的数量,错误代码;
  • 支持sendfile(FreeBSD 3.1+, Linux 2.2+, Mac OS X 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+, Mac OS X);
  • 支持Accept-filters(FreeBSD 4.1+, NetBSD 5.0+)和 TCP_DEFER_ACCEPT(Linux 2.4+);
  • 10000个非活跃的HTTP keep-alive连接仅占用约2.5M内存;
  • 尽可能避免数据拷贝操作。

测试过的操作系统和平台

  • FreeBSD 3  — 10 / i386; FreeBSD 5  — 10 / amd64;
  • Linux 2.2  — 3 / i386; Linux 2.6  — 3 / amd64;
  • Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v;
  • AIX 7.1 / powerpc;
  • HP-UX 11.31 / ia64;
  • MacOS X / ppc, i386;
  • Windows XP, Windows Server 2003.