Centos7 安裝 Tengine詳解
Tengine介紹
一、Tengine部分特性
1.nginx -m 檢視所有已經載入的模組,static說明已經安裝的,shared說明是動態安裝的;
2.nginx架構是模組化的,除了主模組,其他模組都需在安裝時進行編譯安裝,也可在安裝後進行編譯安裝;
3.tengine完全相容nginx的配置;
4.tengine實現動態載入模組,不需重新編譯,就可以實現安裝新的模組。動態模組功能會被預設安裝。而nginx不支援模組動態載入,需要編譯重啟;
5.lua語言擴充套件功能,通過程式設計可以有效為應用伺服器分流請求;
6.強大的負載均衡功能,可以檢測應用伺服器的健康情況,動態的上下線。
二、安裝Tengine,具有LUA模組
1. 安裝必要的編譯環境好
# yum update
# yum install gcc gcc-c++ autoconf automake
2. 安裝需要的元件
PCRE
1. PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 相容的正則表示式庫。nginx rewrite依賴於PCRE庫,所以在安裝Tengine前一定要先安裝PCRE,最新版本的PCRE可在官網(http://www.pcre.org/)獲取。具體安裝流程為:
cd /usr/local/src wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz tar zxvf pcre-8.40.tar.gz cd pcre-8.40 ./configure --prefix=/usr/local/pcre make && make install
附加資訊:
原始碼的安裝一般由3個步驟組成:配置(configure)、編譯(make)、安裝(make install)。
Configure是一個可執行指令碼,它有很多選項,在待安裝的原始碼路徑下使用命令./configure –help輸出詳細的選項列表。其中–prefix選項是配置安裝的路徑,如果不配置該選項,安裝後可執行檔案預設放在/usr /local/bin,庫檔案預設放在/usr/local/lib,配置檔案預設放在/usr/local/etc,其它的資原始檔放在/usr /local/share,比較凌亂。
如果配置–prefix,如:./configure –prefix=/usr/local/test,可以把所有資原始檔放在/usr/local/test的路徑中,不會雜亂。
用了—prefix選項的另一個好處是解除安裝軟體或移植軟體。當某個安裝的軟體不再需要時,只須簡單的刪除該安裝目錄,就可以把軟體解除安裝得乾乾淨淨;移植軟體只需拷貝整個目錄到另外一個機器即可(相同的作業系統)。當然要解除安裝程式,也可以在原來的make目錄下用一次make uninstall,但前提是make檔案指定過uninstall。
2. OpenSSL
OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程式供測試或其它目的使用。,安裝OpenSSL(http://www.openssl.org/source/)主要是為了讓tengine支援Https的訪問請求。具體是否安裝看需求。
cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.0.2.tar.gz
tar zxvf openssl-1.0.2.tar.gz
cd openssl-1.0.2.tar.gz
./configure --prefix=/usr/local/openssl
make && make install
3. Zlib
Zlib是提供資料壓縮之用的函式庫,當Tengine想啟用GZIP壓縮的時候就需要使用到Zlib(http://www.zlib.net/)。
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.tar.gz
./configure --prefix=/usr/local/zlib
make && make install
4. jemalloc
jemalloc(http://www.canonware.com/jemalloc/)是一個更好的記憶體管理工具,使用jemalloc可以更好的優化Tengine的記憶體管理。
cd /usr/local/src
wget http://www.canonware.com/download/jemalloc/jemalloc-3.6.0.tar.bz2
tar jxvf jemalloc-3.6.0.tar.bz2
cd jemalloc-3.6.0.tar.bz2
./configure --prefix=/usr/local/jemalloc
make && make install
3. 安裝Tengine
在主要核心的元件安裝完畢以後就可以安裝Tegine了,最新版本的Tegine可從官網(http://tengine.taobao.org/)獲取。
在編譯安裝前還需要做的一件事是新增一個專門的使用者來執行Tengine。當然你也可以用root(不建議)。
複製程式碼 程式碼如下:
groupadd www-data
useradd -s /sbin/nologin -g www-data www-data
接下來才是進行安裝:
cd /usr/local/src
wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
tar -zxvf tengine-2.2.0.tar.gz
cd tengine-2.2.0
./configure --prefix=/usr/local/nginx \
--user=www-data \
--group=www-data \
--with-pcre=/usr/local/src/pcre-8.40 \
--with-openssl=/usr/local/src/openssl-1.0.2 \
--with-jemalloc=/usr/local/src/jemalloc-3.6.0 \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_concat_module \
--with-zlib=/usr/local/src/zlib-1.2.11
make && make install
注意配置的時候 –with-pcre 、–with-openssl、–with-jemalloc、–with-zlib的路徑為原始檔的路徑。
4. Centos7配置Tengine,設定tengine開機自啟
1. 系統使用者登入系統後啟動的服務的目錄
/usr/lib/systemd/system
2. 如需要開機沒有登陸情況下就能執行的程式在系統目錄內
/usr/lib/systemd/system
3. 我希望系統開機就啟動目錄,所以我把檔案放在系統目錄內。
vim /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
4. 修改檔案許可權
chmod 745 nginx.service
5. 設定為開機啟動
systemctl enable nginx.service
6. 其它命令
啟動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