天天看點

nginx和正反向代理nginx

nginx

1.用處:

  • Nginx是一款自由的、開源的、高性能的HTTP伺服器和反向代理伺服器;同時也是一個IMAP、POP3、SMTP代理伺服器;Nginx可以作為一個HTTP伺服器進行網站的釋出處理,另外Nginx可以作為反向代理進行負載均衡的實作。

2.正向代理

  • 例子:
    • 翻牆:FQ的方式主要是找到一個可以通路國外網站的代理伺服器,我們将請求發送給代理伺服器,代理伺服器去通路國外的網站,然後将通路到的資料傳遞給我們!
  • nginx和正反向代理nginx
  • 正向代理最大的特點是用戶端非常明确要通路的伺服器位址;伺服器隻清楚請求來自哪個代理伺服器,而不清楚來自哪個具體的用戶端;正向代理模式屏蔽或者隐藏了真實用戶端資訊。
  • 正向代理的用途:
    • (1)通路原來無法通路的資源,如Google
    • (2) 可以做緩存,加速通路資源
    • (3)對用戶端通路授權,上網進行認證
    • (4)代理可以記錄使用者通路記錄(上網行為管理),對外隐藏使用者資訊

3.反向代理

  • 舉例:
    • 如我大天朝的某寶網站,每天同時連接配接到網站的通路人數已經爆表,單個伺服器遠遠不能滿足人民日益增長的購買欲望了,此時就出現了一個大家耳熟能詳的名詞:分布式部署;也就是通過部署多台伺服器來解決通路人數限制的問題;某寶網站中大部分功能也是直接使用Nginx進行反向代理實作的,并且通過封裝Nginx和其他的元件之後起了個高大上的名字:Tengine
  • nginx和正反向代理nginx
  • 用戶端是無感覺代理的存在的,反向代理對外都是透明的,通路者并不知道自己通路的是一個代理。因為用戶端不需要任何配置就可以通路。
  • 反向代理,“它代理的是服務端”,主要用于伺服器叢集分布式部署的情況下,反向代理隐藏了伺服器的資訊。
  • 反向代理的用途:
    • (1)保證内網的安全,通常将反向代理作為公網通路位址,Web伺服器是内網
    • (2)負載均衡,通過反向代理伺服器來優化網站的負載

4.二者一起上

  • 我們在實際項目操作時,正向代理和反向代理很有可能會存在在一個應用場景中,正向代理代理用戶端的請求去通路目标伺服器,目标伺服器是一個反向單利伺服器,反向代理了多台真實的業務處理伺服器。具體的拓撲圖如下:
  • nginx和正反向代理nginx
  • 可以實作雙向隐藏使用者或者伺服器資訊,更安全。

5.負載均衡

  • 負載均衡在實際項目操作過程中,有硬體負載均衡和軟體負載均衡兩種,硬體負載均衡也稱為硬負載,如F5負載均衡,相對造價昂貴成本較高,但是資料的穩定性安全性等等有非常好的保障,如中國移動中國聯通這樣的公司才會選擇硬負載進行操作;更多的公司考慮到成本原因,會選擇使用軟體負載均衡,軟體負載均衡是利用現有的技術結合主機硬體實作的一種消息隊列分發機制。
  • Nginx支援的負載均衡排程算法方式如下:
    • weight輪詢(預設):接收到的請求按照順序逐一配置設定到不同的後端伺服器,即使在使用過程中,某一台後端伺服器當機,Nginx會自動将該伺服器剔除出隊列,請求受理情況不會受到任何影響。
    • ip_hash:每個請求按照發起用戶端的ip的hash結果進行比對,這樣的算法下一個固定ip位址的用戶端總會通路到同一個後端伺服器,這也在一定程度上解決了叢集部署環境下session共享的問題。
    • fair:智能調整排程算法,動态的根據後端伺服器的請求處理到響應的時間進行均衡配置設定,響應時間短處理效率高的伺服器配置設定到請求的機率高,響應時間長處理效率低的伺服器配置設定到的請求少;結合了前兩者的優點的一種排程算法。
    • url_hash:按照通路的url的hash結果配置設定請求,每個請求的url會指向後端固定的某個伺服器,可以在Nginx作為靜态伺服器的情況下提高緩存效率。

6.幾種常用web伺服器對比

nginx和正反向代理nginx

ps:web3.js概念

最常見的解釋是,網站内的資訊可以直接和其他網站相關資訊進行互動,能通過第三方資訊平台同時對多家網站的資訊進行整合使用;使用者在網際網路上擁有自己的資料,并能在不同網站上使用;

繼續閱讀