`

Tengine简介和安装使用方法

 
阅读更多

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 用户使用手册丨OPEN AI LAB

    开发者可以使用Tengine在主流框架模型和嵌入式操作系统间切换,还能异构调度平台里的各类硬件,充分利用硬件算力。 此外,Tengine还提供了常见AI应用算法,包括图像检测,人脸识别,语音识别等。Tengine同时还支持...

    tengine安装包和依赖包

    四、Tengine的使用和配置: Tengine的配置文件通常位于`/usr/local/tengine/conf/nginx.conf`,可以根据需求修改。基本配置包括服务器块(server blocks)、监听端口、虚拟主机、路由规则等。通过合理的配置,...

    tengine淘宝Web服务器 v3.1.0.zip

    1. 大型电商平台:由于Tengine的高性能和稳定性,特别适合于处理大量并发请求的电商网站,如淘宝网本身就是在使用Tengine。 2. 内容分发网络(CDN):Tengine的负载均衡和防盗链功能,使其成为CDN服务的理想选择。 ...

    基于 tengine-2.3.3 制作的 nginx rpm离线安装包

    4. **更新升级**:如果需要升级到新版本,可以重复上述制作和安装过程,但需注意备份现有配置和数据。 综上所述,基于Tengine-2.3.3的Nginx RPM离线安装包为用户提供了一种简单、高效且适应离线环境的部署方式,...

    Tengine-tensorflow安装

    Tengine is a lite, high performance, modular inference engine for embedded device tensorflow安装 tensorflow安装 tensorflow安装 tensorflow安装 tensorflow安装

    tengine2.1.2

    在安装和部署Tengine2.1.2时,通常需要先编译和安装这些依赖库,然后才能编译和安装Tengine自身。每个库都有其特定的编译选项和配置步骤,以满足Tengine的需求。例如,OpenSSL的配置可能需要指定特定的加密算法支持...

    Tengine(tengine-2.3.3.tar.gz)

    3. **编译与安装**:解压`tengine-2.3.3`后,用户需要按照指定的步骤进行编译和安装。通常包括`./configure`配置、`make`编译和`make install`安装。配置阶段可以设置各种编译选项,比如安装路径、启用或禁用特定...

    tengine-2.2.0.tar.gz

    安装和使用Tengine通常包括编译源码、配置参数、安装软件以及编写和应用配置文件等步骤。通过阅读官方文档和示例,开发者可以了解如何充分利用Tengine的各项功能,以满足自己的业务需求。 总的来说,Tengine 2.2.0...

    Tengine服务器快速搭建方法 云服务器一键安装LTMP(TengineRPM一键安装)

    【Tengine服务器快速搭建方法 云服务器一键安装LTMP(TengineRPM一键安装)】 Tengine是一个基于Nginx的Web服务器项目,由淘宝网发起并维护,它在Nginx的基础上进行了优化和增强,特别适合处理高并发的访问请求。...

    tengine安装所需nginx文档

    在安装tengine过程中,预编译完成后所需要的建立的nginx文档,可直接复制到linux中,修改路径后可直接使用。

    nginx-tengine-3.0.0

    Tengine的性能和稳定性已经在大型的网站如淘宝,天猫,优酷,全球速卖通,Lazada,阿里云等得到了很好的检验。Tengine将向通用API网关方向持续演进和发展,在HTTP应用流量入口网关的基础上,逐步支持4/7层TLS,TCP,...

    Centos编译安装Tengine&nginx加自启动脚本.pdf

    下载Tengine的源码包,解压缩后,编译和安装到/usr/local/nginx目录下。在编译时,需要指定--prefix=/usr/local/nginx以便安装到正确的目录下。 3. 安装nginx nginx是一个流行的开源web服务器软件。在编译nginx...

    国密浏览器+tengine+Tongsuo实现国密https离线部署

    国密浏览器+tengine+Tongsuo实现国密https离线部署

    tengine-2.3.2_win64.rar

    Tengine 是一个基于 Nginx 的高性能 Web 和反向代理服务器,由淘宝网开发并维护,它在 Nginx 的基础上增加了许多功能和优化,以更好地适应大规模网站的需求。 描述 "tengine-2.3.2 在Cygwin下编译, 花了不少的时间...

    Tengine for windows

    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实现图片自动裁剪缩放下载资料.rar

    总之,"使用Tengine+Lua+GM实现图片自动裁剪缩放下载"是一种高效、灵活的图片处理方法,结合了高性能的Web服务器、轻量级的脚本语言和强大的图像处理工具。掌握这项技术,将有助于提升你的网站或应用的图片处理能力...

    tengine-2.3.2 for windows full modules

    Tengine是一款基于Nginx的高性能Web服务器和反向代理服务器,由淘宝网发起并维护。这个名为“tengine-2.3.2 for windows full modules”的版本是专为Windows平台设计的,它包含了所有可用的模块,这使得它能够支持更...

    Centos编译安装Tengine&nginx加自启动脚本资料.pdf

    总结,这个过程包括了Tengine与Nginx的源代码编译安装,依赖库的安装,以及自启动脚本的配置,确保了Nginx在系统启动时能正常工作,并提供了对HTTP状态模块、SSL支持和GZIP静态模块的支持。同时,通过自定义用户和组...

    tengine-2.3.2.tar.gz

    Tengine是一款基于Nginx核心并由淘宝网开发和维护的高性能Web服务器和反向代理服务器,它在Nginx的基础上增加了许多功能特性,尤其在负载均衡、动态内容处理、日志管理和性能优化等方面有着显著的优势。Tengine-...

Global site tag (gtag.js) - Google Analytics