tengine简单安装_Tengine介绍和安装
Tengine特性
继承Nginx-1.6.2的所有特性,兼容Nginx的配置;
动态模块加载(DSO)支持。加入一个模块不再需要重新编译整个Tengine;
支持SO_REUSEPORT选项,建连性能提升为官方nginx的三倍;
同时支持HTTP v2协议和SPDY v3协议,可同时使用两种协议;
流式上传到HTTP后端服务器或FastCGI服务器,大量减少机器的I/O压力;
更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名;
输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
支持设置proxy、memcached、fastcgi、scgi、uwsgi在后端失败时的重试次数
动态脚本语言Lua支持。扩展功能非常高效简单;
支持管道(pipe)和syslog(本地和远端)形式的日志以及日志抽样;
支持按指定关键字(域名,url等)收集Tengine运行状态;
组合多个CSS、JavaScript文件的访问请求变成一个请求;
自动去除空白字符和注释从而减小页面的体积
自动根据CPU数目设置进程个数和绑定CPU亲缘性;
监控系统的负载和资源占用从而对系统进行保护;
显示对运维人员更友好的出错信息,便于定位出错机器;
更强大的防***(访问速度限制)模块;
更方便的命令行参数,如列出编译的模块列表、支持的指令等;
可以根据访问文件类型设置过期时间;
Tengine安装
Tengine TCP 负载均衡,tengine默认不支持tcp转发,所以编译时加入tcp模块,也支持动态加载模块。
下载的文件统一存放在目录里面,方便管理
mkdir /tools && cd /tools
wget https://src.fedoraproject.org/lookaside/pkgs/jemalloc/jemalloc-3.5.1.tar.bz2/
tar jxvf jemalloc-3.5.1.tar.bz2
cd jemalloc-3.5.1
./configure
make && make install
echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
ldconfig
cd ..
下载tengine-2.1.1 和 tcp模块
下载 http://tengine.taobao.org/download/tengine-2.1.1.tar.gz
tar zxvf tengine-2.1.1.tar.gz
下载tcp模块
wget https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/master.zip
unzip master.zip
打补丁
yum -y install patch
cd tengine-2.1.1
patch -p1 < /opt/software/nginx_tcp_proxy_module-master/tcp.patch
提示如下
patching file src/core/ngx_log.c
Hunk #1 succeeded at 69 (offset 3 lines).
patching file src/core/ngx_log.h
Hunk #1 succeeded at 30 (offset 1 line).
Hunk #2 succeeded at 38 (offset 1 line).
patching file src/event/ngx_event_connect.h
Hunk #1 succeeded at 33 (offset 1 line).
Hunk #2 succeeded at 45 (offset 2 lines).
开始配置编译安装
./configure --user=upload --group=upload --prefix=/opt/tengine --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-ld-opt="-ljemalloc" --add-module=/tools/nginx_tcp_proxy_module-master
服务器操作系统优化
服务端还需要调整一下系统的参数,在/etc/sysctl.conf中:
net.core.somaxconn = 2048
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 4096 16777216
net.ipv4.tcp_wmem = 4096 4096 16777216
net.ipv4.tcp_mem = 786432 2097152 3145728
net.ipv4.tcp_max_syn_backlog = 16384
net.core.netdev_max_backlog = 20000
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_orphans = 131072
/sbin/sysctl -p 生效