国产精品一区二区久久久-99久久久精品免费看国产-久久九九99热这里只有精品-漂亮人妻被中出中文字幕久久-五月情综合网站久久-福利姬3d全彩办公室色欲-av网站在线播放网站-亚洲日本岛国动作片在线观看-男人的天堂啊啊啊啊

日志樣式

阿里云資深架構(gòu)師分享:Nginx 就是個好的架構(gòu).

  • 標(biāo)簽 :
阿里云資深架構(gòu)師分享:Nginx 就是個好的架構(gòu),(文末福利)

 

前言:

Nginx (engine x) 是一個高性能的HTTP和反向代理web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù)。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發(fā)的,第一個公開版本0.1.0發(fā)布于2004年10月4日。

其將源代碼以類BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。

Nginx是一款輕量級的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like 協(xié)議下發(fā)行。其特點是占有內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,中國大陸使用nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。

阿里云資深架構(gòu)師分享:Nginx 就是個好的架構(gòu),(文末福利)

 

作為工程師的我們,為什么要學(xué) Nginx?

第一點:Nginx 對整個架構(gòu)的幫助是非常大的。

2007 年,我從華為來到了騰訊的 QQ 空間,在數(shù)據(jù)開發(fā)組工作。當(dāng)時 QQ 空間小組也就是十來個人,大概有一億多用戶,同時在線大約在三百萬用戶,承載在 Apache 和 C++ 開發(fā)的服務(wù)器上。因為當(dāng)時騰訊有蠻低的 ARPO 值(每用戶平均收入),每個用戶貢獻的收入是很少的,所以我們需要每臺服務(wù)器盡量能夠帶來更多的價值,能服務(wù)更多的用戶,就需要在 Apache 上做大量的優(yōu)化。比如說把它的多進程改成多線程,很多初始化能一次解決的就不要初始化多次、調(diào)用多次等等。

但是不管你怎么樣做,總有點隔靴搔癢的感覺,你根本沒辦法做大幅度的優(yōu)化,因為它的結(jié)構(gòu)已經(jīng)決定了這些問題的出現(xiàn)。

2009 年我到了思科之后,也遇到了同樣問題,但我開始接觸 Nginx,發(fā)現(xiàn)用 Nginx 改造服務(wù)器之后,它大概有 10 倍這樣數(shù)量級的性能提升。但對于 Apache,你對架構(gòu)本身沒有辦法做很大的變動了。這就是我通過實際經(jīng)歷想表達的第一點。

第二點:不能重復(fù)造輪子。

什么叫不能重復(fù)造輪子?

大概 2014 年,我在阿里 VBC 網(wǎng)絡(luò)的時候,用因特爾的 DBDT 技術(shù)解決方案,做了一個叫 SDN 軟件自定義網(wǎng)絡(luò)。當(dāng)時我突然發(fā)現(xiàn),你做一些比如網(wǎng)絡(luò)設(shè)備相關(guān)東西的時候,它的技術(shù)迭代非常慢,而且技術(shù)相對保守一些。

這個到底是為什么吶?我現(xiàn)在想明白了,就是我們在互聯(lián)網(wǎng)背景下,技術(shù)是模塊依賴的,比如我用 Nginx 來開發(fā),Nginx 的模塊都是開放的,我可以基于別人的模塊做進一步的開發(fā)。別人在 不斷迭代模塊的之后,我可以享受到優(yōu)化的好處,這就是所謂的“站在巨人的肩膀上”。

這也就是我想講的:千萬不要重復(fù)造輪子。如果 Nginx 能解決,或者說任何一個成熟的框架能解決問題的時候,不要再花時間自己做了。

第三點:還有好的架構(gòu)。

什么叫好的架構(gòu)?

我是 2012 年 10 月份去的阿里云,做了架構(gòu)師。ECS 當(dāng)時是兩個月迭代一次版本,我們團隊全年通宵了 23 次,花了兩年時間,把線上的五萬臺服務(wù)器重構(gòu)成一個新的架構(gòu),大概是一個月就可以做迭代。

好的架構(gòu)真的很重要。Nginx 就是個好的架構(gòu)。

好架構(gòu),就是你要有預(yù)見性。比如 TCP 協(xié)議,它在 1995 年的時候就創(chuàng)立出來了,到現(xiàn)在都沒有大改,依舊服務(wù)了各種各樣的場景。Nginx 也是一樣,從 2014 年推出來后基本沒多大變化。但它的模塊化,是縱向的劃分的架構(gòu),最底層是事件驅(qū)動,基于 EP 的事件驅(qū)動,再上面是 HTTP 框架,再上面是 HTTP 模塊,再上面是 OpenResty 的 lua。再看橫向的劃分,比如說我們要做一些 WAF 防火墻的限制,又比如基于 IP 做白名單、黑名單,那它的模塊劃分很清楚,還比如其他的模塊,像 linit 或者 Request 只負責(zé)限速,不會自己去獲取到用戶的真實 IP 再去限速等等。

所以,我說 Nginx 是一個好的架構(gòu),而我們學(xué)習(xí) Nginx,也可以獲取到非常好的架構(gòu)思維。

天津市犀思科技有限公司是專業(yè)從事web應(yīng)用定制開發(fā)的一家公司,主營業(yè)務(wù)包括定制功能型網(wǎng)站建設(shè)開發(fā)微信小程序開發(fā)、微信公眾號開發(fā)、APP定制開發(fā)、天津企業(yè)微信開發(fā)、ERP、CRM、OA等企業(yè)應(yīng)用場景信息化解決方案等服務(wù),致力于成為中國領(lǐng)先的IT服務(wù)及行業(yè)解決方案的提供商。


發(fā)表評論

電子郵件地址不會被公開。 必填項已用*標(biāo)注

看不清?點擊更換