Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了不少高級功能和特性。它的目的是打造一個高效、安全的Web平臺。nginx
Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等獲得了很好的檢驗。c++
從2011年12月開始,Tengine成爲一個開源項目,Tengine團隊在積極地開發和維護着它。Tengine團隊的核心成員來自於淘寶、搜狗等互聯網企業。Tengine是社區合做的成果,咱們歡迎你們參與其中,貢獻本身的力量。git
1.安裝依賴包github
[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的內存管理。curl
[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
在主要核心的組件安裝完畢之後就能夠安裝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