钧言极客

CentOS7/8源码编译安装Tengine并设置开机启动

简介

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

安装编译依赖环境

1、 安装依赖

yum -y install gcc gcc-c++  bzip2 perl curl curl-devel  expat-devel gettext-devel openssl-devel libxml2 libxml2-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel autoconf

2、 扩展安装源

yum -y install epel-release
yum -y install libmcrypt libmcrypt-devel mcrypt mhash

3、 安装编译组件

(1) pcre:一个Perl库,包括 perl 兼容的正则表达式库。nginx rewrite依赖于PCRE库。

cd /usr/local/src && wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz && tar zxvf pcre-8.44.tar.gz && cd pcre-8.44 && ./configure --prefix=/usr/local/pcre && make && make install

(2) jemalloc:是一个更好的内存管理工具,使用jemalloc可以更好的优化Tengine的内存管理。

cd /usr/local/src && wget https://github.com/jemalloc/jemalloc/releases/download/5.2.0/jemalloc-5.2.0.tar.bz2 && tar xvf jemalloc-5.2.0.tar.bz2 && cd jemalloc-5.2.0 && ./configure --prefix=/usr/local/jemalloc && make && make install

(3) Zlib:提供资料压缩之用的函式库,当Tengine想启用GZIP压缩的时候就需要使用到Zlib

cd /usr/local/src && wget http://zlib.net/zlib-1.2.11.tar.gz && tar zxvf zlib-1.2.11.tar.gz && cd zlib-1.2.11 && ./configure --prefix=/usr/local/zlib && make && make install

(4) OpenSSL:是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。主要是为了让tengine支持Https的访问请求。

cd /usr/local/src && wget https://www.openssl.org/source/openssl-1.1.1.tar.gz && tar zxvf openssl-1.1.1.tar.gz && cd openssl-1.1.1 && ./config --prefix=/usr/local/openssl && make && make install

创建WWW用户执行Tengine

这里为了安全起见还是添加一个专用的账户来执行Tengine,不建议用root用户启动。

groupadd www
useradd -m -s /sbin/nologin -g www www

编译安装Tengine

主要的核心组件安装完成后,就可以安装tengine。

下载Tengine,可以在http://tengine.taobao.org/ 获取。

cd /usr/local/src && wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz && tar -zxvf tengine-2.3.2.tar.gz && cd tengine-2.3.2

配置编译安装

./configure --prefix=/usr/local/tengine --user=www --group=www --with-pcre=/usr/local/src/pcre-8.42 --with-openssl=/usr/local/src/openssl-1.1.1 --with-jemalloc=/usr/local/src/jemalloc-5.2.0 --with-zlib=/usr/local/src/zlib-1.2.11 --with-http_gzip_static_module --with-http_realip_module --with-http_stub_status_module --with-http_concat_module=shared --with-http_ssl_module --with-http_v2_module

配置--with-pcre 、--with-openssl、--with-jemalloc、--with-zlib的路径为源文件的路径。不然会出错

检查配置

echo $?
// 如果输出0则下一步
make -j4&&make install
// -j 则是调用多核心,进行并行编译。建议是cpu核心的两倍

Tengine设置自动启动

系统用户登录系统后启动的服务 的目录 /usr/lib/systemd/system
如需要开机没有登陆情况下就能运行的程序在系统目录内/lib/systemd/system

我希望在系统开机就保持程序的正常运行,这里我把配置放在系统目录下。

// 系统用户登录启动服务
cd /lib/systemd/system
// 添加tengine配置
vi tengine.service
//快捷创建文件
vi /lib/systemd/system/nginx.service

添加以下配置信息

[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

设置文件权限

chmod 745 nginx.service

设置开机启动

systemctl enable tengine.service
Tengine相关指令
启动nginx服务    systemctl start nginx.service
设置开机自启动   systemctl enable nginx.service
停止开机自启动   systemctl disable nginx.service
查看服务当前状态 systemctl status nginx.service
重新启动服务     systemctl restart nginx.service
查看所有已启动的服务  systemctl list-units --type=service

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »