当前位置:  Web服务器/前端>nginx

nginx服务器基本特性及使用技巧

 
分享到:
    发布时间:2013-9-1  


    本文导语:  nginx [engine x]是Igor Sysoev编写的一个HTTP和反向代理服务器,另外它也可以作为邮件代理服务器。 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括Yandex、Mail.Ru、VKontakte,以及Rambler。据Netcraft统计,在201...

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

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

基本的HTTP服务器特性

处理静态文件,索引文件以及自动索引;打开文件描述符缓存;

使用缓存加速反向代理;简单负载均衡以及容错;

远程FastCGI,uwsgi,SCGI,和memcached服务的缓存加速支持;简单的负载均衡以及容错;

模块化的架构。过滤器包括gzip压缩、ranges支持、chunked响应、XSLT,SSI以及图像缩放。在SSI 过滤器中,一个包含多个SSI的页面,如果经由FastCGI或反向代理处理,可被并行处理;支持SSL,TLS SNI。

其他的HTTP服务器特性

基于名字和IP的虚拟主机;

Keep-alive和pipelined连接支持;

灵活的配置;

重新加载配置以及在线升级时,不需要中断正在处理的请求;

自定义访问日志格式,带缓存的日志写操作以及快速日志轮转;

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

重写(rewrite)模块:使用正则表达式改变URI;

根据客户端地址执行不同的功能;

基于客户端IP地址和HTTP基本认证机制的访问控制;

支持验证HTTP referer;

支持PUT、DELETE、MKCOL、COPY以及MOVE方法;

支持FLV流和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和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.

使用技巧

大体上来说nginx主要用于反向加速代理而不是像squid那样做为常规代理服务器。Nginx的最大优势在于高负载情况下内存和CPU的低消耗。我不认为squid能给你带来比nginx更好的性能。

依照 [NginxImapProxyExample] 开始你的配置. 关于不同配置参数的具体信息,请查看 [NginxMailCoreModule] 页。

示例1: 用运行于apache上的php脚本做后端验证.

示例2: 使用运行于同一个服务器的 nginx-embedded-perl模块作为 imap/pop代理和认证后端.

某些东东不工作(URL重写,代理,路径,...),例如:如URL重写(rewrite)不工作了或者是unix的路径(/$PATH)的问题,请仔细阅读 [NginxDebugging] 并且 逐行 查看错误日志。

如果你没找到错误打起精神,试着到IRC或邮件列表里说明一下你碰到的问题。

有没有其它类似的Web服务器:Cherokee,Lighttpd (Lighty),thttpd,关于各自的优缺点请使用自己喜欢的搜索引擎查找。

让Nginx成为以postfix做为后端的SMTP代理.

Nginx使用什么算法来实现负载均衡它能实现基于连接数的负载均衡吗?

Nginx使用简单的轮巡算法,所以无法做基本链接计数的负载均衡。这个可能会在将来的版本中有所改变。


    您可能感兴趣的文章:

  • 本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.169IT.COM)站内文章除注明原创外,均为转载,整理或搜集自网络.欢迎任何形式的转载,转载请注明出处.
    转载请注明:文章转载自:[169IT-IT技术资讯]
    本文标题:nginx服务器基本特性及使用技巧
相关文章推荐:


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号