你好,Tengine!再见,Nginx!
写在前面#
戴兜的小屋在今年二月中旬时更換了機房,因為戴兜發現國內訪問 vultr 的洛杉磯機房要比東京機房快很多🧐。遷移完博客後突然想到了Tengine,之前因為懶沒有使用,這次有時間不妨折騰一下。
戴兜的伺服器為 Ubuntu 16.04 LTS,文中提到的命令,各位根據自己的伺服器做相應修改哦!
一、 折騰前的準備#
安裝必要的組件
apt install build-essential
apt install libpcre3-dev libpcre3 libssl-dev libssl1.0.0
從 https://github.com/jemalloc/jemalloc/releases 下載 jemalloc
tar jxvf jemalloc-5.1.0.tar.bz2
cd jemalloc-5.1.0
./configure
make
make install
pwd #獲取jemalloc的路徑
二、 獲取 Tengine 源碼#
直接前往 http://tengine.taobao.org 下載源碼,基於 nginx1.8.1。
如果你對 nginx 的版本有所要求(比如需要使用 Brotli),可以 clone https://github.com/alibaba/tengine 的 master 分支,那是基於 nginx1.15.1 的,但是仍在更新,不穩定。
三、 編譯 Tengine 源碼#
編譯是和 Nginx 一樣的,如果你需要什麼模塊,也要在編譯前配置好。
tar zxvf tengine-2.1.2.tar.gz
cd tengine-2.1.2
./configure --with-jemalloc=[jemalloc的路徑] --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_stub_status_module --with-file-aio
make
make install
現在,~~ 沖一杯卡布奇諾,~~ 靜靜等待。在所有工作結束後,你只需要將原來 Nginx 的配置拷貝到 Tengine,就大功告成啦!是不是很簡單!
四、 尾聲#
目前版本的 Tengine 不支持 HTTP2 的流式上傳,HTTP1.1 的流式上傳是正常的。可能導致博客無法上傳較大文件(使用 master 分支可以解決)