Nginx和Tengine

Posted wanmeilingdu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx和Tengine相关的知识,希望对你有一定的参考价值。

一、nginx简单介绍:

• Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一
个 IMAP/POP3/SMTP 代理服务器。
• 第一个公开版本0.1.0发布于2004年10月4日。
• 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、
示例配置文件和低系统资源的消耗而闻名
• 官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非
常低,运行非常稳定

• 2011年6月1日,nginx 1.0.4发布。
• Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(
IMAP/POP3)代理服务器,
• 并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开
发,
• 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类
型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网
易、腾讯等。

二、Nginx功能:

• web服务器
• web reverse proxy
• smtp reverse proxy

三、Nginx和apache的优缺点

1. nginx相对于apache的优点:
a.轻量级,同样起web 服务,比apache 占用更少的内存及资源
b.抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx
c.能保持低资源低消耗高性能
d.高度模块化的设计,编写模块相对简单
e.社区活跃,各种高性能模块出品迅速啊
2. apache 相对于nginx 的优点:
a.rewrite ,比nginx 的rewrite 强大
b.模块超多,基本想到的都可以找到
c.少bug ,nginx 的bug 相对较多
3. Nginx 配置简洁, Apache 复杂
4. 最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程

四、Tengine

Tengine 是nginx的加强版,封装版,淘宝开源
官网http://tengine.taobao.org/
1. 动态模块加载(DSO)支持。加入一个模块不再需要重新编译整个Tengine;
2. 支持SO_REUSEPORT选项,建连性能提升为官方nginx的三倍;
3. 支持SPDY v3协议,自动检测同一端口的SPDY请求和HTTP请求;
4. 流式上传到HTTP后端服务器或FastCGI服务器,大量减少机器的I/O压力;
5. 更加强大的负载均衡能力,包括
一致性hash模块会话保持模块还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名
6. 
输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
7. 支持设置proxy、 memcached、 fastcgi、 scgi、 uwsgi
在后端失败时的重试次数;
8. 动态脚本语言Lua支持。扩展功能非常高效简单;
9. 支持管道(pipe)和syslog(本地和远端)形式的日志以及日志抽样;
10.支持按指定关键字(域名,url等)收集Tengine运行状态;
11.组合多个CSS、 javascript文件的访问请求变成一个请求;
12. 自动去除空白字符和注释从而减小页面的体积。

五、Tengine安装前准备

1、依赖 gcc openssl-devel pcre-devel zlib-devel
      安装:yum install gcc openssl-devel pcre-devel zlib-devel
2、创建用户和用户组。为了方便nginx运行而不影响linux安全
     创建组:groupadd -r nginx
     创建用户:useradd -r -g nginx -M nginx
     -M 表示不创建用户的家目录

3、解压tengine-2.1.0.tar.gz

4、进入解压的目录下,依次执行以下命令:
    ./configure --prefix=/usr/tengine
    make && make install

5、添加nginx到服务

     a.进入/etc/init.d/目录下

     b.新建nginx,将nginx里面的内容拷贝进来,注意三点,a)新建文件,b)编辑模式,c)这里要修改两个参数

nginx="/usr/tengine/sbin/nginx"

NGINX_CONF_FILE="/usr/tengine/conf/nginx.conf"

     c. 修改权限可执行,chmod 755 nginx

     d.nginx文件见附件:http://download.csdn.net/detail/wanmeilingdu/9510230

     e.修改nginx文件的执行权限

     f.chmod +x nginx
     g.添加该文件到系统服务中去: chkconfig --add nginx
     h.查看是否添加成功: chkconfig --list nginx
6、nginx的启动、停止和重载
     service nginx start|stop|reload

7.  启动后可以通过http://ip 进行访问,默认端口是80,如果占用,请自行修改nginx.conf中端口重启服务。








以上是关于Nginx和Tengine的主要内容,如果未能解决你的问题,请参考以下文章

linux-nginx-1

Nginx介绍

Nginx介绍

Apache和Nginx

搭建高性能 tengine

QPS比Nginx提升60%,阿里Tengine负载均衡算法揭秘