nginx版本策略

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

【版本策略】

分支說明

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

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

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

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

版本演進

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

在每一年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,獲取更新內容。

【如何選擇分支】

經過以上版本策略描述,主線版本與穩定版本只存在特性上的不一樣,對於軟件質量要求都是一致的。因此官方的推薦是儘可能使用主線版本。get

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

可是因爲主線版本的更新週期較快,若是緊跟主線版本有困難,能夠選擇跟進穩定版本,每一年作一次大的更新。開源軟件

在我我的的工做中,咱們團隊交付的組件是基於nginx進行大量的二次開發。每個月同步主線版本將帶來不少工做量。(咱們對nginx代碼進行了大量調整)因此咱們採起了2個活動,保障組件與官方代碼的同步,更好地利用開源軟件優點。class

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

【參考資料】

相關文章
相關標籤/搜索