一直以来明月都对Tengine很关注,据说这是淘宝使用的Nginx,有很多不错的集成,因为各种原因一直没有使用过,昨天在逛“知乎”的时候发现了一个“在使用Nginx情况下如何平滑更换为Tengine?”的方法,感觉很有收藏价值,于是今天就分享出来,指不定哪天就转过来试试了。

Nginx平滑升级Tengine

SSH登陆,执行如下的代码
wget -c http://tengine.taobao.org/download/tengine-2.2.0.tar.gz #下载Tengine 2.2.0版本

tar zxvf tengine-2.2.0.tar.gz #解压到当前目录

cd tengine-2.2.0 #进入到目录

./configure #执行安装脚本

make #编译安装

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

备份nginx的配置文件,路径参考你自己的

cp -r objs/nginx /usr/local/nginx/sbin/nginx #复制Tengine文件到nginx下

vi /usr/local/nginx/conf/nginx.conf #编辑nginx.conf,删除如下代码

location /status {
stub_status on;access_log off;
}

kill -USR2 'cat /usr/local/nginx/logs/nginx.pid'
kill -QUIT 'cat /usr/local/nginx/logs/nginx.pid.oldbin'

结束nginx进程

/usr/local/nginx/sbin/nginx -v #查看nginx版本号返回带有Tengine版本号等信息则升级成功!

卸载Tengine,换回Nginx

rm -rf /usr/local/nginx/sbin/nginx #删除Tengine配置文件

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old #恢复备份的nginx配置文件,路径参考你自己的

/etc/init.d/nginx restart #重启nginx

/usr/local/nginx/sbin/nginx -v #查看nginx版本号返回带有Nginx版本号则卸载成功

附带Tengine最新版本特性

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

tengine.png

  • 继承Nginx-1.8.1的所有特性,兼容Nginx的配置;
  • 动态模块加载(DSO)支持。加入一个模块不再需要重新编译整个Tengine;
  • 支持HTTP/2协议,HTTP/2模块替代SPDY模块;
  • 流式上传到HTTP后端服务器或FastCGI服务器,大量减少机器的I/O压力;
  • 更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名;
  • 输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
  • 支持设置proxy、memcached、fastcgi、scgi、uwsgi在后端失败时的重试次数
  • 动态脚本语言Lua支持。扩展功能非常高效简单;
  • 支持按指定关键字(域名,url等)收集Tengine运行状态;
  • 组合多个CSS、JavaScript文件的访问请求变成一个请求;
  • 自动去除空白字符和注释从而减小页面的体积
  • 自动根据CPU数目设置进程个数和绑定CPU亲缘性;
  • 监控系统的负载和资源占用从而对系统进行保护;
  • 显示对运维人员更友好的出错信息,便于定位出错机器;
  • 更强大的防攻击(访问速度限制)模块;
  • 更方便的命令行参数,如列出编译的模块列表、支持的指令等;
  • 可以根据访问文件类型设置过期时间;
  • ……
最后修改:2017 年 07 月 16 日
如果觉得我的文章对你有用,请随意赞赏