趣談Nginx

無論你用瀏覽器還是APP訪問多數網站,到達的第一站就是Nginx

後來者居上的Nginx

千禧年前後,互聯網業務迎來了高速發展,老牌的Web服務器都無法滿足高性能、高可靠的市場需求。

一個開源的、流行的HTTP和反向代理服務器在2004年應運而生,它就是Nginx。它作爲HTTP服務器可以用較少的內存來提供可靠的靜態站點服務,同時作爲反向代理支持HTTP、電子郵件、TCPUDP等多種協議,可以用作多個上游服務器的流量入口。所謂後來者居上,Nginx出道十五年,穩居市場佔用率榜首。 (Netcraft官網統計數據顯示201910月市場佔有率32.88%)

因此,多數互聯網公司也邀請到了Nginx這位業界“流量擔當”來承擔流量入口龐大而繁複的數據傳輸工作。

Nginx提供中介服務

什麼是“反向代理”?

舉個例子:在現如今的租房子市場中,人們很難一次性接觸到房主本人,更多的時候接觸到是房屋中介等這樣的 “二房東”。 反向代理服務器就是這種這種幫助真正的房主執行租房指令的“二房東”。當客戶端(租客)發送請求到反向代理服務器(二房東)上,由反向代理服務器(二房東)再把請求轉發給一臺上游服務器(房東)來執行,再把執行結果返回給客戶端(租客)。

更爲專業的解釋是:反向代理(Reverse Proxy)是一個Web服務器,它終結了客戶端連接,並生成了另一個新的連接,新的連接代表客戶端向上遊服務器生成連接。上游服務器(upstream server)被定義爲一個Nginx產生連接“打通”了客戶端請求的服務器。(摘自《Mastering Nginx 2nd Edition》)

image.png

Nginx作爲流量入口帶你遊覽互聯網的每個角落的時候,也會爲了滿足“租客”的需求在租客和房東之間忙的團團轉。它需要代替“租客”向上遊服務器生成一個新的請求,並將上游服務器的響應數據發回給租客。

image.png

反向代理服務器提供了強大的擴展性,將併發連接到多個上游服務器(房東父子),使它們看起來好像就是一個服務器實現的(二房東)。

同樣再拿租房市場來舉例子:某個土豪房東有多套房子委託二房東出租,但是房東平常比較忙,容易耽誤租房事情。二房東建議房東增加聯繫人如房東的兒子並約定處理規則,這裏的的房東父子是反向代理中的“上游服務器”,處理的規則是“負載均衡策略”。

image.png

專業的解釋:Nginx可以通過擴展它代理的連接來保護你的上游服務器免於過載。(摘自《Mastering Nginx 2nd Edition》)

這種反向代理多個上游服務器的方式就是多數互聯網平臺使用最廣泛的負載均衡服務。

後文將總結一系列的Nginx經驗總結,包含負載均衡、壓縮、緩存、安全控制、工作原理和優化等內容。歡迎大家關注。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章