Nginx是一個高性能的HTTP和反向代理服務器
反向代理
正向代理是讓一個代理替我們訪問目標服務器,然後將數據返回給我們,需要手動設置代理服務器的ip和端口號,可以用來訪問我們訪問不了的資源
反向代理是服務器接收客戶端請求後,轉發給內部網絡的服務器處理,並將從服務器上得到的結果返回給客戶端,客戶端感覺不到代理服務器的存在
負載均衡
負載均衡:多在高併發情況下需要使用。其原理就是將數據流量分攤到多個服務器執行,減輕每臺服務器的壓力,多臺服務器(集羣)共同完成工作任務,從而提高了數據的吞吐量。
Nginx可使用的負載均衡策略有
1.輪詢(默認):每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器down掉,能自動剔除
2.權重:指定輪詢機率,weight和訪問比率成正比,用於後端服務器性能不均的情況。
3.ip_hash:每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端服務器,可以解決session的問題。
4.url_hash(第三方):按訪問URL的hash結果來分配請求,使每個URL定向到同一個後端服務器,後端服務器爲緩存時比較適用
5.fair(第三方):按後端服務器的響應時間來分配請求,響應時間短的優先分配。
動靜分離
Nginx提供的動靜分離是指把動態請求和靜態請求分離開,合適的服務器處理相應的請求,可以提高服務器系統的性能、效率。
對於靜態資源比如圖片,js,css等文件,可以在反向代理服務器中進行緩存,這樣瀏覽器在請求一個靜態資源時,代理服務器就可以直接處理,而不用將請求轉發給後端服務器。動態請求由相應的後端服務器處理。