Linux 编译安装 Tengine

说明

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

安装

下载

在编译 Tengine 前,需要下载 4 个依赖包,它们分别是 JemallocOpenSSLPCREZlib

Jemalloc 用来优化内存分配,OpenSSL 用来支持 ssl 功能,PCRE 用来支持 rewrite 功能,Zlib 用来支持 gzip 功能。

wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
wget https://github.com/jemalloc/jemalloc/releases/download/4.4.0/jemalloc-4.4.0.tar.bz2
wget https://www.openssl.org/source/openssl-1.0.2j.tar.gz
wget http://downloads.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz
wget http://www.zlib.net/zlib-1.2.10.tar.gz

解压

Tengine 的依赖不需要安装,只需要指定对于的源码目录就行了,所以这里先解压依赖包,然后在 configure 中使用 --with-** 指定其目录。

tar -zxf tengine-2.2.0.tar.gz
tar -zxf openssl-1.0.2j.tar.gz
tar -zxf pcre-8.39.tar.gz
tar -zxf zlib-1.2.10.tar.gz
tar -jxf jemalloc-4.4.0.tar.bz2

准备

由于 Tengine 的依赖是一直需要的,不能编译后就删掉。那么就把依赖存放在单独的目录里吧。

mkdir -p /usr/local/tglib

cp -a openssl-1.0.2j /usr/local/tglib/openssl
cp -a pcre-8.39 /usr/local/tglib/pcre
cp -a zlib-1.2.10 /usr/local/tglib/zlib
cp -a jemalloc-4.4.0 /usr/local/tglib/jemalloc

然后我们需要新建一个缓存目录,因为 Tengine 不会去生成它。

mkdir -p /var/cache/tengine

最后指定一个用户和用户组去启动 Tengine,这里用 www。

# 判断 www 用户是否存在
id www 2>/dev/null | wc -l

# 如果显示为 0 就创建用户组和用户
groupadd www
useradd www -g www -M -s /sbin/nologin

编译

为了编译顺利进行,请确保已经安装了 gcc、c++、make 和 perl。

# CentOS
yum install gcc gcc-c++ make perl
# Ubuntu
apt-get install gcc g++ make perl

标题已经说了共存方式编译安装,那么久不会和已安装的 Nginx 冲突,所以需要指定 Tengine 的安装目录、配置目录、日志目录、进程目录、缓存目录。

  • 安装目录: /usr/local/tengine

  • 配置目录: /etc/tengine

  • 日志目录: /var/log/tengine

  • 进程目录: /var/run

  • 缓存目录: /var/cache

cd tengine-2.2.0

./configure \
  --prefix=/usr/local/tengine \
  --conf-path=/etc/tengine/tengine.conf \
  --error-log-path=/var/log/tengine/error.log \
  --http-log-path=/var/log/tengine/access.log \
  --pid-path=/var/run/tengine.pid \
  --lock-path=/var/run/tengine.lock \
  --http-client-body-temp-path=/var/cache/tengine/client_temp \
  --http-proxy-temp-path=/var/cache/tengine/proxy_temp \
  --http-fastcgi-temp-path=/var/cache/tengine/fastcgi_temp \
  --http-uwsgi-temp-path=/var/cache/tengine/uwsgi_temp \
  --http-scgi-temp-path=/var/cache/tengine/scgi_temp \
  --user=www \
  --group=www \
  --with-http_addition_module \
  --with-http_auth_request_module \
  --with-http_dav_module \
  --with-http_flv_module \
  --with-http_gunzip_module \
  --with-http_gzip_static_module \
  --with-http_mp4_module \
  --with-http_random_index_module \
  --with-http_realip_module \
  --with-http_secure_link_module \
  --with-http_slice_module \
  --with-http_ssl_module \
  --with-http_stub_status_module \
  --with-http_sub_module \
  --with-http_v2_module \
  --with-http_concat_module \
  --with-file-aio \
  --with-threads \
  --with-mail \
  --with-mail_ssl_module \
  --with-pcre=/usr/local/tglib/pcre \
  --with-zlib=/usr/local/tglib/zlib \
  --with-openssl=/usr/local/tglib/openssl \
  --with-jemalloc=/usr/local/tglib/jemalloc

make
make install

配置

安装完成后,查看下 Tengine 的版本信息:

/usr/local/tengine/sbin/nginx -V

确认 OK 后将 Tengine 链接到系统命令里,这样就可以直接敲 tengine -V 了。

ln -s /usr/local/tengine/sbin/nginx /usr/sbin/tengine
带符号 * 的表示必填项
  1. 夜尔九九
    夜尔九九

    铲一下

    回复
    1. MaiCong
      MaiCong博主

      咦?

      回复