1. 程式人生 > 其它 >B站掛了之後出現的tengine是個啥?

B站掛了之後出現的tengine是個啥?

一、描述

晚上剛洗漱完之後聽同學說:B站掛了?woc?真掛了?

嗯!確實掛了,404的狀態碼,懂的都懂。

不過,最下面的tengine字眼吸引了我的注意,一時興起,打算看看它是個什麼東西,起碼搞一個hello world出來,所以特意去購買了一臺伺服器,打算搞一個hello tengine

伺服器就位,準備開幹!

二、官方的介紹

Tengine是由淘寶網發起的Web伺服器專案。它在Nginx的基礎上,針對大訪問量網站的需求,添加了很多高階功能和特性。Tengine的效能和穩定性已經在大型的網站如淘寶網、天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。

從2011年12月開始,Tengine成為一個開源專案,Tengine團隊在積極地開發和維護著它。Tengine團隊的核心成員來自於淘寶、搜狗等網際網路企業。Tengine是社群合作的成果,我們歡迎大家參與其中,貢獻自己的力量。

三、下載、編譯、安裝

原始碼下載地址:http://tengine.taobao.org/download.html

解壓:

-rw-r--r--  1 root root 2848144 7月  13 23:13 tengine-2.3.3.tar.gz
[root@VM-0-4-centos ~]# tar -zxvf tengine-2.3.3.tar.gz

安裝:

# 切換進tengine-2.3.3目錄
# 安裝依賴
$ yum install gcc-devel openssl-devel zlib-devel pcre-devel

# 通過 --prefix 指定安裝目錄
[root@VM-0-4-centos sbin]# ./configure --prefix=/usr/local/tengine
$ make && make install

編譯時有很多可選項,感興趣可以參考這個連結:http://tengine.taobao.org/document_cn/install_cn.html

Tengine預設將安裝在/usr/local/nginx目錄。你可以用'--prefix'來指定你想要的安裝目錄。

四、啟動

# 切換到安裝目錄
$ cd /usr/local/tengine

目錄詳情如下,整體不難看懂,bin檔案、配置檔案、html檔案,大概看起來和使用nginx沒啥區別。預設的配置檔案也是conf/nginx.conf

conf目錄中存放的是配置檔案,看了一下配置檔案中的sever模組,和nginx的配置相當,熟悉的location語法和80埠、熟悉的gzip壓縮傳輸...

再去稍微修改一下它的html程式碼

切換進sbin目錄,通過nginx命令啟動tengine

-rwxr-xr-x 1 root root 6291432 7月  13 23:55 nginx
[root@VM-0-4-centos sbin]# ./nginx

看一下效果:

最後再看一看熟悉的404:

五、小結

哎,搞了一會,發現沒啥難度。從看它的官網再到編譯安裝啟動,大概也就十幾二十分鐘的樣子,使用起來和nginx幾乎沒啥差別,零難度,易上手。感覺用起來還是個nginx

官網也有介紹說tengine相對於nginx有很多優化點如下:

比如有更友好的錯誤提示:比如這次我們都能看到B站出問題的機器到hostname(通過hostname可以獲取機器ip甚至是直接登陸上機器)

更多的好處,大家可以自己去看官網瞄一眼哦~

http://tengine.taobao.org/documentation.html

六、推薦閱讀

  1. MySQL的修仙之路,圖文談談如何學MySQL、如何進階!(已釋出)
  2. 面前突擊!33道資料庫高頻面試題,你值得擁有!(已釋出)
  3. 大家常說的基數是什麼?(已釋出)
  4. 講講什麼是慢查!如何監控?如何排查?(已釋出)
  5. 對NotNull欄位插入Null值有啥現象?(已釋出)
  6. 能談談 date、datetime、time、timestamp、year的區別嗎?(已釋出)
  7. 瞭解資料庫的查詢快取和BufferPool嗎?談談看!(已釋出)
  8. 你知道資料庫緩衝池中的LRU-List嗎?(已釋出)
  9. 談談資料庫緩衝池中的Free-List?(已釋出)
  10. 談談資料庫緩衝池中的Flush-List?(已釋出)
  11. 瞭解髒頁刷回磁碟的時機嗎?(已釋出)
  12. 用十一張圖講清楚,當你CRUD時BufferPool中發生了什麼!以及BufferPool的優化!(已釋出)
  13. 聽說過表空間沒?什麼是表空間?什麼是資料表?(已釋出)
  14. 談談MySQL的:資料區、資料段、資料頁、資料頁究竟長什麼樣?瞭解資料頁分裂嗎?談談看!(已釋出)
  15. 談談MySQL的行記錄是什麼?長啥樣?(已釋出)
  16. 瞭解MySQL的行溢位機制嗎?(已釋出)
  17. 說說fsync這個系統呼叫吧! (已釋出)
  18. 簡述undo log、truncate、以及undo log如何幫你回滾事物! (已釋出)
  19. 我勸!這位年輕人不講MVCC,耗子尾汁! (已釋出)
  20. MySQL的崩潰恢復到底是怎麼回事? (已釋出)
  21. MySQL的binlog有啥用?誰寫的?在哪裡?怎麼配置 (已釋出)
  22. MySQL的bin log的寫入機制 (已釋出)
  23. 刪庫後!除了跑路還能幹什麼?(已釋出)
  24. 自導自演的面試現場,趣學資料庫的10種檔案(已釋出)
  25. 大型面試現場:一條update sql執行都經歷什麼?(已釋出)
  26. 大型翻車現場:如何實現記錄存在的話就更新,如果記錄不存在的話就插入。(已釋出)
  27. 視訊+圖文串講:MySQL 行鎖、間隙鎖、Next-Key-Lock、以及實現記錄存在的話就更新,如果記錄不存在的話就插入如何保證併發安全(已釋出)
  28. 自導自演的面試現場:說說char 和 varchar的區別你瞭解多少?。(已釋出)
  29. 自導自演的面試現場之--你竟然不瞭解MySQL的組提交?。(已釋出)
  30. 全網最清楚的:MySQL的insert buffer和change buffer 串講(已釋出)
  31. Double Write並不難理解
  32. 簡述MySQL的三大正規化
  33. 盤點各種登陸資料庫的方式
  34. 面試現場:join聯表的注意點、有哪些聯表查詢方式、真題...
  35. 心裡有點樹
  36. 心裡有點B樹
  37. 聚簇索引到底是怎麼回事?是如何長高的?
  38. 8分鐘回顧MySQL的索引