nginx版本策略


近期Nginx發布了1.17.0主線版本與1.16.0穩定版本,並且發布了一篇文章< Introducing NGINX 1.16 and 1.17 >說明Nginx的版本更新策略、推薦分支、1.16.x新增的主要特性、1.17.x的路線規划。

【版本策略】

分支說明

與Linux內核版本號類似,nginx的版本號也使用奇數偶數區分開發版本(主線版本)與穩定版本。例如1.13.x、1.15.x、1.17.x系列就是開發版本,1.12.x、1.14.x、1.16.x就是穩定版本。

關於主線版本與穩定版本的定義,按官方的說法如下:

  • 主線版本就是開發版本,會持續的加入特性與修補bug。
  • 穩定版本,只修復有高安全風險的bug。

特別注意,穩定版本與開發版本並不是軟件質量上的區別,只是特性更新頻率的區別。

版本演進

關於版本之間如何演進,請參考以下這張圖片:

在每年4月前后nginx的開發會進行一次版本號的推進,發布新的主線版本與穩定版本,例如近期的1.17.0與1.16.0。在這有幾點值得注意:

  • 版本號推進后,舊的穩定版本將不繼續更新,也不繼續合入bug修復。
  • 主線版本號推進並沒有大的特性更新,例如從1.15.12到1.17.0,也是常規特性新增與bug修復,並不會加入大量特性。
  • 穩定版本號推進將加入大量主線版本特性,例如從1.14.2到1.16.0,將加入所有1.15.x主線版本開發的所有特性修改。(1.16.0與1.15.12內容相同)
  • 主線版本的更新周期,大約是4~6周一次,可以通過訂閱http://nginx.org/en/CHANGES,獲取更新內容。

【如何選擇分支】

通過以上版本策略描述,主線版本與穩定版本只存在特性上的不同,對於軟件質量要求都是一致的。所以官方的推薦是盡量使用主線版本。

同時Nginx的商業版本(NGINX Plus)也總是基於最近的主線版本,並加入閉源的部分代碼,形成商業版本提供服務。

但是由於主線版本的更新周期較快,如果緊跟主線版本有困難,可以選擇跟進穩定版本,每年做一次大的更新。

在我個人的工作中,我們團隊交付的組件是基於nginx進行大量的二次開發。每月同步主線版本將帶來很多工作量。(我們對nginx代碼進行了大量調整)所以我們采取了2個活動,保障組件與官方代碼的同步,更好地利用開源軟件優勢。

  • 訂閱NGINX主線版本更新,關注是否有與我們密切相關的特性修改,選擇性同步。
  • 每年同步一次穩定版本,防止過大的差異導致失去開源支持。

【參考資料】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM