Tengine是淘宝开发的基于nginx的应用服务器,反向代理服务器。它兼容nginx的所有配置,并且在其上增加了很多实用的功能,例如动态模块加载,集成lua语言进行扩展等,在性能方面有了比较大的改进。下面是Tengine独有的部分功能,查看全部等前往官网,地址是http://tengine.taobao.org/。
一、Tengine部分特性
1.nginx -m 查看所有已经加载的模块,static说明已经安装的,shared说明是动态安装的;
2.nginx架构是模块化的,除了主模块,其他模块都需在安装时进行编译安装,也可在安装后进行编译安装;
3.tengine完全兼容nginx的配置;
4.tengine实现动态加载模块,不需重新编译,就可以实现安装新的模块。动态模块功能会被默认安装。而nginx不支持模块动态加载,需要编译重启;
5.lua语言扩展功能,通过编程可以有效为应用服务器分流请求;
6.强大的负载均衡功能,可以检测应用服务器的健康情况,动态的上下线。
二、安装Tengine,具有LUA模块
1.安装PCRE库,如有可以不装
cd /usr/local/
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.10.tar.gz
tar -zxvf pcre2-10.10.tar.gz
cd pcre2-10.10
./configure
make
make install
2.安装zlib库,如有可以不装
cd /usr/local/
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8
./configure
make
make install
3.安装ssl,如有可以不装
cd /usr/local/
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz
4.安装lua-jit,即时编译的lua
下载wget http://luajit.org/download/LuaJIT-2.0.3.tar.gz,安装时需要root权限,解压缩,打开根目录,使用下列命令,安装到默认位置。
make && sudo make install
5.安装ngx_devel_kit,下载wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz,解压
6.安装ngx_lua,下载wget https://github.com/openresty/lua-nginx-module/archive/v0.9.16rc1.tar.gz,解压
7.export LUAJIT_LIB=/usr/local/lib,可以查看lua-jit安装配置文件获取lib和include的值;
8.export LUAJIT_INC=/usr/local/include/luajit-2.0 ;
9.安装tengine,下载tengine,解压缩,打开目录,执行下列命令:
./configure --prefix=/home/work/opt/nginx --with-ld-opt='-Wl,-rpath,/usr/local/lib' --add-module=/home/work/tengine/ngx_devel_kit-0.2.19 --add-module=/home/work/tengine/lua-nginx-module-0.9.16rc1 --with-openssl=/home/work/tengine/openssl-1.0.1c
make
make install
参考文档:
http://www.cnblogs.com/zhuhongbao/archive/2013/06/04/3118061.html
http://tengine.taobao.org/documentation_cn.html
https://github.com/openresty/lua-nginx-module/blob/master/README.markdown
三、使用Tengine
1.配置
提供一个典型配置,包括负载均衡,记录日志,限流,使用LUA扩展等功能。如下:
#user nobody;
worker_processes auto;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 2048;
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent $request_time $upstream_response_time $bytes_sent $request_length ';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 10;
#限制域limit_req_zone $binary_remote_addr $uri zone=one:30m rate=10r/s;
limit_req_zone $binary_remote_addr $uri zone=one:30m rate=10r/s;
proxy_next_upstream error http_500 http_503 http_504;
#proxy_next_upstream timeout;
proxy_connect_timeout 5s;
proxy_send_timeout 10s;
upstream onlineProxy {
server ip:port;
server ip:port;
server ip:port;
server ip:port;
server ip:port;
server ip:port;
}
upstream standaloneProxy {
server ip:port;
server ip:port;
server ip:port;
server ip:port;
server ip:port;
server ip:port;
}
server {
listen 8881;
server_name 域名;
proxy_intercept_errors on;
location ^~ /xxx/ {
#100表示最大请求数阀值,超过限制域(1r/s)请求会被延迟,超过阀值次数的请求会返回503,nodeley表示超过的限制域的请求直接失败
limit_req zone=one burst=100;
access_log logs/online/access_online.log main;
proxy_pass http://onlineProxy;
error_page 404 500 502 503 504 /error_online.html;
proxy_set_header x-forward-nginx $remote_addr;
}
location /lua_content {
# MIME type determined by default_type:
default_type 'text/plain';
access_log logs/test.log main;
content_by_lua "ngx.say('Hello,world!')";
}
location ^~ /xxx/ {
access_log logs/standalone/access_standalone.log main;
proxy_pass http://standaloneProxy;
error_page 404 500 502 503 504 /error_standalone.html;
proxy_set_header x-forward-nginx $remote_addr;
}
location ^~ /gamesdkjobs/uploadify/uploadFile/ {
access_log logs/standalone/access_standalone.log main;
proxy_pass http://10.10.1.35:8181/gamesdkjobs/uploadify/uploadFile/;
error_page 404 500 502 503 504 /error_standalone.html;
proxy_set_header x-forward-nginx $remote_addr;
}
location = /monitor {
default_type application/json;
return 200 'success';
}
location / {
return 404;
}
location = /error_online.html {
access_log logs/online/access_online_error.log;
root html;
}
location = /error_standalone.html {
access_log logs/standalone/access_standalone_error.log;
root html;
}
}
}
2.启动
opt/nginx/sbin/nginx
3.重启
编写重启脚本,如下:
pid_path="/home/work/opt/nginx/logs/nginx.pid"
kill -HUP `cat ${pid_path}`
4.停止
编写停止脚本,如下:
pid_path="/home/work/opt/nginx/logs/nginx.pid"
kill -QUIT `cat ${pid_path}`
5.分割访问日志
编写定时任务来定期执行脚本,如下:
logs_path="/home/work/opt/nginx/logs/"
pid_path="/home/work/opt/nginx/logs/nginx.pid"
log_date=`date -d "1 minute ago" +%Y%m%d%H`
mv ${logs_path}online/access_online.log ${logs_path}online/access_online.log.${log_date}
kill -USR1 `cat ${pid_path}`
相关推荐
开发者可以使用Tengine在主流框架模型和嵌入式操作系统间切换,还能异构调度平台里的各类硬件,充分利用硬件算力。 此外,Tengine还提供了常见AI应用算法,包括图像检测,人脸识别,语音识别等。Tengine同时还支持...
四、Tengine的使用和配置: Tengine的配置文件通常位于`/usr/local/tengine/conf/nginx.conf`,可以根据需求修改。基本配置包括服务器块(server blocks)、监听端口、虚拟主机、路由规则等。通过合理的配置,...
1. 大型电商平台:由于Tengine的高性能和稳定性,特别适合于处理大量并发请求的电商网站,如淘宝网本身就是在使用Tengine。 2. 内容分发网络(CDN):Tengine的负载均衡和防盗链功能,使其成为CDN服务的理想选择。 ...
4. **更新升级**:如果需要升级到新版本,可以重复上述制作和安装过程,但需注意备份现有配置和数据。 综上所述,基于Tengine-2.3.3的Nginx RPM离线安装包为用户提供了一种简单、高效且适应离线环境的部署方式,...
Tengine is a lite, high performance, modular inference engine for embedded device tensorflow安装 tensorflow安装 tensorflow安装 tensorflow安装 tensorflow安装
在安装和部署Tengine2.1.2时,通常需要先编译和安装这些依赖库,然后才能编译和安装Tengine自身。每个库都有其特定的编译选项和配置步骤,以满足Tengine的需求。例如,OpenSSL的配置可能需要指定特定的加密算法支持...
3. **编译与安装**:解压`tengine-2.3.3`后,用户需要按照指定的步骤进行编译和安装。通常包括`./configure`配置、`make`编译和`make install`安装。配置阶段可以设置各种编译选项,比如安装路径、启用或禁用特定...
安装和使用Tengine通常包括编译源码、配置参数、安装软件以及编写和应用配置文件等步骤。通过阅读官方文档和示例,开发者可以了解如何充分利用Tengine的各项功能,以满足自己的业务需求。 总的来说,Tengine 2.2.0...
【Tengine服务器快速搭建方法 云服务器一键安装LTMP(TengineRPM一键安装)】 Tengine是一个基于Nginx的Web服务器项目,由淘宝网发起并维护,它在Nginx的基础上进行了优化和增强,特别适合处理高并发的访问请求。...
在安装tengine过程中,预编译完成后所需要的建立的nginx文档,可直接复制到linux中,修改路径后可直接使用。
Tengine的性能和稳定性已经在大型的网站如淘宝,天猫,优酷,全球速卖通,Lazada,阿里云等得到了很好的检验。Tengine将向通用API网关方向持续演进和发展,在HTTP应用流量入口网关的基础上,逐步支持4/7层TLS,TCP,...
下载Tengine的源码包,解压缩后,编译和安装到/usr/local/nginx目录下。在编译时,需要指定--prefix=/usr/local/nginx以便安装到正确的目录下。 3. 安装nginx nginx是一个流行的开源web服务器软件。在编译nginx...
国密浏览器+tengine+Tongsuo实现国密https离线部署
Tengine 是一个基于 Nginx 的高性能 Web 和反向代理服务器,由淘宝网开发并维护,它在 Nginx 的基础上增加了许多功能和优化,以更好地适应大规模网站的需求。 描述 "tengine-2.3.2 在Cygwin下编译, 花了不少的时间...
Tengine 使用cygwin编译适用于windows x64,编译了健康检查模块,health check check interval=3000 rise=2 fall=2 timeout=1000 type=http; check_http_send "HEAD /webecg/login HTTP/1.0\r\n\r\n"; check_...
总之,"使用Tengine+Lua+GM实现图片自动裁剪缩放下载"是一种高效、灵活的图片处理方法,结合了高性能的Web服务器、轻量级的脚本语言和强大的图像处理工具。掌握这项技术,将有助于提升你的网站或应用的图片处理能力...
Tengine是一款基于Nginx的高性能Web服务器和反向代理服务器,由淘宝网发起并维护。这个名为“tengine-2.3.2 for windows full modules”的版本是专为Windows平台设计的,它包含了所有可用的模块,这使得它能够支持更...
总结,这个过程包括了Tengine与Nginx的源代码编译安装,依赖库的安装,以及自启动脚本的配置,确保了Nginx在系统启动时能正常工作,并提供了对HTTP状态模块、SSL支持和GZIP静态模块的支持。同时,通过自定义用户和组...
Tengine是一款基于Nginx核心并由淘宝网开发和维护的高性能Web服务器和反向代理服务器,它在Nginx的基础上增加了许多功能特性,尤其在负载均衡、动态内容处理、日志管理和性能优化等方面有着显著的优势。Tengine-...