设为首页 加入收藏

TOP

Nginx的“远方表哥”—Tengine(一)
2019-09-03 02:07:48 】 浏览:68
Tags:Nginx 远方 表哥 Tengine

本文收录在Linux运维企业架构实战系列

  今天想起当初研究nginx反向代理负载均衡时,nginx自身的upstream后端配置用着非常不舒服; 当时使用的淘宝基于nginx二次开发的Tengine,今天总结一下。

1、认识Tengine

1.1 介绍

  • Tengine是由淘宝网发起的Web服务器项目。它Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。它的目的是打造一个高效、安全的Web平台。
  • Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。
  • 它的最终目标是打造一个高效、稳定、安全、易用的Web平台。
  • 201112月开始,Tengine成为一个开源项目。
  • 现在,它由Tengine团队开发和维护。Tengine团队的核心成员来自于淘宝、搜狗等互联网企业。

 

1.2 功能

  •  继承Nginx-1.6.2的所有特性,兼容Nginx的配置
  •  动态模块加载(DSO)支持。加入一个模块不再需要重新编译整个Tengine
  •  支持SO_REUSEPORT选项,建连性能提升为官方nginx的三倍;
  •  支持SPDY v3协议,自动检测同一端口的SPDY请求和HTTP请求;
  •  流式上传到HTTP后端服务器或FastCGI服务器,大量减少机器的I/O压力;
  •  更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名;
  •  输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
  •  支持设置proxymemcachedfastcgiscgiuwsgi在后端失败时的重试次数
  •  动态脚本语言Lua支持。扩展功能非常高效简单;
  •  支持管道(pipe)和syslog(本地和远端)形式的日志以及日志抽样;
  •  支持按指定关键字(域名,url)收集Tengine运行状态;
  •  组合多个CSSjava script文件的访问请求变成一个请求;
  •  自动去除空白字符和注释从而减小页面的体积
  •  自动根据CPU数目设置进程个数和绑定CPU亲缘性;
  •  监控系统的负载和资源占用从而对系统进行保护;
  •  显示对运维人员更友好的出错信息,便于定位出错机器;
  •  更强大的防攻击(访问速度限制)模块;
  •  更方便的命令行参数,如列出编译的模块列表、支持的指令等;
  •  可以根据访问文件类型设置过期时间;

 

2、编译安装tengine

2.1 下载指定版本

官网:http://tengine.taobao.org/download.html

[root@along app]# wget http://tengine.taobao.org/download/tengine-2.2.3.tar.gz
[root@along app]# tar -xvf tengine-2.2.3.tar.gz

  

2.2 创建用户,下载依赖的安装包

[root@along app]# groupadd nginx
[root@along app]# useradd -s /sbin/nologin -g nginx -M nginx
[root@along app]# yum -y install gc gcc gcc-c++ pcre-devel zlib-devel openssl-devel

  

2.3 编译安装

[root@along app]# cd tengine-2.2.3/
[root@along tengine]# ./configure --user=nginx --group=nginx --prefix=/app/tengine --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
[root@along tengine]# make && make install
[root@along tengine]# chown -R nginx.nginx /app/tengine
[root@along tengine]# ll /app/tengine
total 8
drwxr-xr-x 2 nginx nginx 4096 Feb 20 14:55 conf
drwxr-xr-x 2 nginx nginx   40 Feb 20 14:50 html
drwxr-xr-x 2 nginx nginx 4096 Feb 20 14:50 include
drwxr-xr-x 2 nginx nginx    6 Feb 20 14:50 logs
drwxr-xr-x 2 nginx nginx    6 Feb 20 14:50 modules
drwxr-xr-x 2 nginx nginx   35 Feb 20 14:50 sbin

注:

  •  #指定运行权限的用户   --user=nginx
  •  #指定运行的权限用户组   --group=nginx
  •  #指定安装路径   --prefix=/usr/local/nginx
  •  #支持nginx状态查询 --with-http_stub_status_module
  •  #开启ssl支持   --with-http_ssl_module
  •  #开启GZIP功能   --with-http_gzip_static_module

 

3、开启服务

3.1 配置开机启动脚本

[root@along nginx]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/app/tengine/logs/nginx.pid
ExecStartPre=/app/tengine/sbin/nginx -t -c /app/tengine/conf/nginx.conf
ExecStart=/app/tengine/sbin/nginx -c /app/tengine/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

  

3.2 启动服务

[root@along ~]# systemctl start nginx
[root@along ~]# ss -nutlp |
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇nginx网站标准配置 下一篇if条件简单语法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目