簡介

Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了很多高級功能和特性。它的目的是打造一個高效、安全的Web平台。
發展
Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等得到了很好的檢驗。
從2011年12月開始,Tengine成為一個開源項目,Tengine團隊在積極地開發和維護着它。Tengine團隊的核心成員來自於淘寶、搜狗等互聯網企業。Tengine是社區合作的成果,我們歡迎大家參與其中,貢獻自己的力量。
一、安裝編譯環境
1.安裝依賴包
[root@Tengine ~]# 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.配置擴展包安裝源
[root@Tengine ~]# yum -y install epel-release
[root@Tengine ~]# yum -y install libmcrypt libmcrypt-devel mcrypt mhash
3.安裝編譯所需要的組件
(1)pcre:是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx rewrite依賴於PCRE庫,所以在安裝Tengine前一定要先安裝PCRE。
[root@Tengine ~]# cd /usr/local/src && wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz && tar zxvf pcre-8.42.tar.gz && cd pcre-8.42 && ./configure --prefix=/usr/local/pcre && make && make install
(2)zlib:Zlib是提供資料壓縮之用的函式庫,當Tengine想啟用GZIP壓縮的時候就需要使用到Zlib。
[root@Tengine pcre-8.42]# 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
(3)jemalloc:是一個更好的內存管理工具,使用jemalloc可以更好的優化Tengine的內存管理。
[root@Tengine zlib-1.2.11]# cd /usr/local/src && wget https://github.com/jemalloc/jemalloc/releases/download/5.1.0/jemalloc-5.1.0.tar.bz2 && tar xvf jemalloc-5.1.0.tar.bz2 && cd jemalloc-5.1.0 && ./configure --prefix=/usr/local/jemalloc && make && make install
(4)OpenSSL:是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程序供測試或其它目的使用。主要是為了讓tengine支持Https的訪問請求。
[root@Tengine jemalloc-5.1.0]# 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
二、安裝Tengine
在主要核心的組件安裝完畢以后就可以安裝Tegine了,最新版本的Tegine可從官網(http://tengine.taobao.org/)獲取。
在編譯安裝前還需要做的一件事是添加一個專門的用戶來執行Tengine。不建議使用root用戶啟動
[root@Tengine openssl-1.1.1]# useradd www -s /sbin/nologin -M
下載Tengine
[root@Tengine openssl-1.1.1]# cd /usr/local/src && wget http://tengine.taobao.org/download/tengine-2.2.3.tar.gz && tar -zxvf tengine-2.2.3.tar.gz && cd tengine-2.2.3
配置編譯安裝
[root@Tengine tengine-2.2.3]# ./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.1.0 \ > --with-http_gzip_static_module \ > --with-http_realip_module \ > --with-http_stub_status_module \ > --with-http_concat_module=shared \ > --with-zlib=/usr/local/src/zlib-1.2.11
[root@Tengine tengine-2.2.3]# echo $? 0 [root@Tengine tengine-2.2.3]# make -j 4&&make install
[root@Tengine tengine-2.2.3]# echo $?
0
加入到系統服務
[root@Tengine tengine-2.2.3]# cd /lib/systemd/system [root@Tengine system]# vi tengine.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 [root@Tengine system]# chmod 745 nginx.service # 修改權限 [root@Tengine system]# systemctl enable tengine.service # 開機自啟 Created symlink from /etc/systemd/system/multi-user.target.wants/tengine.service to /usr/lib/systemd/system/tengine.service.
[root@Tengine system]# systemctl start tengine.service #啟動Tengine
安裝完成
可能有的人在make的時候會報這個錯 我在安裝2.2.3時也碰到了這個問題

上面出錯根本原因是編譯nginx找不到實時庫librt
只要將tengine文件中的objs/Makefile中的第一行的 CC = cc 改成 CC = cc -lrt后在編譯安裝就可以了
-lrt的意思是讓編譯的時候加入實時庫librt

