zoukankan      html  css  js  c++  java
  • Tengine编译安装

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

     

    1.Tengine源码获取

      Tengine 使用 Tengine 2.3.2演示,据其官网介绍,该版本继承了 Nginx 1.17.3 版本的所有特性,并兼容了 Nginx 的配置参数。Tengine 开发了很多自有模块,同时也集成了很多优秀的第三方模块,源代码可以通过 Tengine 的官方网站获得,获取命令如下:

    mkdir -p /opt/data/source
    cd /opt/data/source
    wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
    tar zxmf tengine-2.3.2.tar.gz

    2.编译配置参数

      Tengine 比开源版 Nginx 增加了一些编译配置参数。Tengine 增加的编译配置参数如下表所示。

    编译配置参数 默认编译状态 参数说明
    --without-procs 编译 不编译 Procs 模块
    --without-http_ssl_module 编译 不编译 HTTP SSL 支持模块
    --without-http_stub_status_module 编译 不编译运行状态模块
    --without-http-upstream-rbtree 编译 不使用红黑树(RBTree)方式进行上游服务器的查找
    --with-http_lua_module 不编译 编译 Lua 脚本模块
    --with-stream_sni 不编译 编译 TCP 代理时基于 SSL 的 SNI 支持
    --with-jemalloc 不编译 启用 jemalloc 内存管理

      对于上表,有以下两点说明。

      • jemalloc 是 Facebook 开源的一个内存管理分配器;
      • Nginx 原有编译配置参数参见《Nginx源码编译安装》一节。

     

    3.代码编译

      代码编译过程如下。

    # 安装编译依赖
    yum -y install gcc pcre-devel  zlib-devel openssl-devel libxml2-devel 
        libxslt-devel gd-devel GeoIP-devel yajl-devel jemalloc-devel 
        libatomic_ops-devel luajit luajit-devel perl-devel perl-ExtUtils-Embed
    
    # 执行编译配置
    ./configure
    
    # 代码编译及安装
    make & make install

      安装 Lua 或 LuaJIT 都可以,LuaJIT 是 Lua 的高效版本,推荐安装 LuaJIT。编译完成后,默认安装目录为 /usr/local/nginx。

     

    4.Tengine 集成的模块

      Tengine 自带的模块都存储在源码目录的 modules 文件中,用户可根据需要通过编译配置参数--add-module进行选择。模块说明如下表所示。

    模块文件夹名 模块说明
    mod_dubbo 提供对与后端 Dubbo 服务体系对接的支持
    ngx_backtrace_module 该模块可用于在工作进程异常退出时转储 Nginx 的回溯信息,如在接收到某些信号(sigabr、sigbus、sigfpe、sigill、sigiot、sigsegv)时。它非常便于调试
    ngx_debug_pool 该模块可以提供 Nginx/Tengine 内存池占用内存的状态信息
    ngx_debug_timer 该模块可以提供 Nginx/Tengine 定时器的状态信息
    ngx_http_concat_module 类似于 Apache 中的 mod_concat 模块,用于将多个文件合并在一个响应报文中
    ngx_http_footer_filter_module 在请求的响应末尾输出一段内容
    ngx_http_lua_module Lua 脚本集成模块
    ngx_http_proxy_connect_module 提供对 HTTP 的 CONNECT 方法的支持
    ngx_http_reqstat_module 监控模块
    ngx_http_slice_module 文件切片模块
    ngx_http_sysguard_module 该模块监控内存(含 SWAP 分区)、CPU 和请求的响应时间,当某些监控指标达到设定的阈值时,跳转到指定的 URL
    ngx_http_tfs_module 该模块实现了 TFS 的客户端,为 TFS 提供了 RESTful API。TFS 的全称是 Taobao File System,是淘宝的一个开源分布式文件系统
    ngx_http_trim_filter_module 该模块用于删除 HTML、内嵌在 JavaScript 和 CSS 中的注释以及重复的空白符
    ngx_http_upstream_check_module 该模块可以为 Tengine 提供主动式后端服务器健康检查功能
    ngx_http_upstream_consistent_hash_module 该模块提供一致性 hash 作为负载均衡算法
    ngx_http_upstream_dynamic_module 此模块可在运行时动态解析 upstream 中 Server 域名
    ngx_http_upstream_dyups_module upstream 动态修改模块
    ngx_http_upstream_session_sticky_module 该模块是一个负载均衡模块,通过 cookie 实现客户端与后端服务器的会话保持,在一定条件下可以保证同一个客户端访问的是同一个后端服务器
    ngx_http_upstream_vnswrr_module 该模块是一个高效的负载均衡算法,同 Nginx 官方的加权轮询算法 SWRR 相比,VNSWRR 具备平滑、散列和高性能特征
    ngx_http_user_agent_module 该模块可以分析 HTTP 消息头属性字段“User-Agent”中的内容
    ngx_multi_upstream_module Dubbo 服务的多路复用连接支持模块
    ngx_slab_stat 该模块可以提供 Nginx/Tengine 共享内存的状态信息

      上述模块功能说明来源于源码中的说明文档,具体使用方法可参照源码中的说明文档。

      Tengine 编译完成后,可使用nginx -m命令查看所有已经加载的模块,static 标识是静态编译的,shared 标识是动态编译的。

    作者:小家电维修

    相见有时,后会无期。

  • 相关阅读:
    ZOJ-2788 Panic Room 【最小割】
    易采群人工智能
    kaggle 入门比赛:使用随机森林解Bag of Words Meets Bags of Popcorn解题报告
    论Python爬虫与MySQL数据库交互的坑
    使用改良版多值覆盖Dancing link X (舞蹈链)求解aquarium游戏
    使用修改版Dancing link X (舞蹈链)求解aquarium游戏
    使用Chrome无头浏览器获取puzzle team club解谜游戏的谜面
    使用深度优先搜索DFS求解star battle游戏
    使用Dancing link X (舞蹈链)求解dominosa游戏
    参加天池Flink TPC-DS性能优化竞赛实况(docker环境搭建与ubuntu容器内编译篇)
  • 原文地址:https://www.cnblogs.com/lizexiong/p/15012824.html
Copyright © 2011-2022 走看看