基于Nginx的衍生版服务器Tengine简介
tengine是由淘宝网发起的web服务器项目。它在nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的web平台。
nginx的特性:
1、基本的http服务器特性
1.处理静态文件,索引文件以及自动索引;打开文件描述符缓存;
2.使用缓存加速反向代理;简单负载均衡以及容错;
3.远程fastcgi,uwsgi,scgi,和memcached服务的缓存加速支持;简单的负载均衡以及容错;
4.模块化的架构。过滤器包括gzip压缩、ranges支持、chunked响应、xslt,ssi以及图像缩放。在ssi 过滤器中,一个包含多个ssi的页面,如果经由fastcgi或反向代理处理,可被并行处理;
5.支持ssl,tls sni。
2、其他的http服务器特性
1.基于名字和ip的虚拟主机;
2.keep-alive和pipelined连接支持;
3.灵活的配置;
4.重新加载配置以及在线升级时,不需要中断正在处理的请求;
5.自定义访问日志格式,带缓存的日志写操作以及快速日志轮转;
6.3xx-5xx错误代码重定向;
7.重写(rewrite)模块:使用正则表达式改变uri;
8.根据客户端地址执行不同的功能;
9.基于客户端ip地址和http基本认证机制的访问控制;
10.支持验证http referer;
11.支持put、delete、mkcol、copy以及move方法;
12.支持flv流和mp4流;
13.速度限制;
14.来自同一地址的同时连接数或请求数限制;
15.嵌入perl语言。
3、邮件代理服务器特性
1.使用外部http认证服务器重定向用户到imap/pop3后端;
2.使用外部http认证服务器认证用户后重定向连接到内部smtp后端;
3.支持的认证方式:
3.1).pop3: user/pass, apop, auth login/plain/cram-md5;
3.2)imap: login, auth login/plain/cram-md5;
3.3)smtp: auth login/plain/cram-md5;
4.ssl支持;
5.starttls和stls支持。
tengine的特性:
1.继承nginx-1.4.7的所有特性,100%兼容nginx的配置;
2.动态模块加载(dso)支持。加入一个模块不再需要重新编译整个tengine;
3.支持spdy v3协议,自动检测同一端口的spdy请求和http请求;
4.流式上传到http后端服务器或fastcgi服务器,大量减少机器的i/o压力;
5.更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线;
6.输入过滤器机制支持。通过使用这种机制web应用防火墙的编写更为方便;
7.支持设置proxy、memcached、fastcgi、scgi、uwsgi在后端失败时的重试次数
8.动态脚本语言lua支持。扩展功能非常高效简单;
9.支持管道(pipe)和syslog(本地和远端)形式的日志以及日志抽样;
10.支持按指定关键字(域名,url等)收集tengine运行状态;
11.组合多个css、javascript文件的访问请求变成一个请求;
12.自动去除空白字符和注释从而减小页面的体积
13.自动根据cpu数目设置进程个数和绑定cpu亲缘性;
14.监控系统的负载和资源占用从而对系统进行保护;
15.显示对运维人员更友好的出错信息,便于定位出错机器;
16.更强大的防攻击(访问速度限制)模块;
17.更方便的命令行参数,如列出编译的模块列表、支持的指令等;
18.可以根据访问文件类型设置过期时间;
架构和扩展性(nginx)
1.一个主进程和多个工作进程,工作进程以非特权用户运行;
2.支持的事件机制: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;
3.众多支持的kqueue特性包括ev_clear、ev_disable(临时禁止事件)、note_lowat、ev_eof,可用数据的数量,错误代码;
4.支持sendfile(freebsd 3.1+, linux 2.2+, mac os x 10.5+)、sendfile64(linux 2.4.21+)和sendfilev(solaris 8 7/01+);
5.文件aio(freebsd 4.3+, linux 2.6.22+);
directio (freebsd 4.4+, linux 2.4+, solaris 2.6+, mac os x);
6.支持accept-filters(freebsd 4.1+, netbsd 5.0+)和 tcp_defer_accept(linux 2.4+);
7.10000个非活跃的http keep-alive连接仅占用约5m内存;
8.尽可能避免数据拷贝操作。
下一篇: jquery实现拖拽调整Div大小