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的主要内容,如果未能解决你的问题,请参考以下文章