一、nginx入門

Nginx在做反向代理時,提供性能穩定,並且能夠提供配置靈活的轉發功能。Nginx可以根據不同的正則匹配,採取不同的轉發策略,比如圖片文件結尾的走文件服務器,動態頁面走web服務器,只要你正則寫的沒問題,又有相對應的服務器解決方案,你就可以隨心所欲的玩。並且Nginx對返回結果進行錯誤頁跳轉,異常判斷等。如果被分發的服務器存在異常,他可以將請求重新轉發給另外一臺服務器,然後自動去除異常服務器

1、什麼是反向代理

(1)正向代理的過程,它隱藏了真實的請求客戶端,服務端不知道真實的客戶端是誰,客戶端請求的服務都被代理服務器代替來請求

(2)反向代理隱藏了真實的服務端,當我們請求 www.baidu.com 的時候,就像撥打10086一樣,背後可能有成千上萬臺服務器爲我們服務,但具體是哪一臺,你不知道,也不需要知道,

你只需要知道反向代理服務器是誰就好了,www.baidu.com 就是我們的反向代理服務器,反向代理服務器會幫我們把請求轉發到真實的服務器那裏去。

(3)Nginx就是性能非常好的反向代理服務器,用來做負載均衡。        

(4)兩者的區別在於代理的對象不一樣:正向代理代理的對象是客戶端,反向代理代理的對象是服務端

(5)“反向代理方式是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現爲一個反向代理服務器。”

2、Nginx常用功能

(1)http服務器:可以做網頁靜態服務器,將服務器上的靜態文件(如HTML、圖片)通過HTTP協議展現給客戶端

(2)反向代理服務器:端口轉發

什麼是反向代理?

客戶端本來可以直接通過HTTP協議訪問某網站應用服務器,網站管理員可以在中間加上一個Nginx,客戶端請求Nginx,Nginx請求應用服務器,然後將結果返回給客戶端,此時Nginx就是反向代理服務器。負載均衡、虛擬主機等,都是基於反向代理實現

 

(3)負載均衡:當網站的訪問量達到一定程度後, 單臺服務器不能滿足用戶的請求時, 需要用多臺服務器集羣可以使用 nginx 做反向代理。 並且多臺服務器可以平均分擔負載, 不會因爲某臺服務器負載高宕機而某臺服務器閒置的情況。

    Nginx提供的負載均衡策略有2種:內置策略和擴展策略。內置策略爲輪詢,加權輪詢,Ip hash。擴展策略,就天馬行空

Ip hash算法,對客戶端請求的ip進行hash操作,然後根據hash結果將同一個客戶端ip的請求分發給同一臺服務器進行處理,可以解決session不共享的問題。

(4)web緩存

Nginx可以對不同的文件做不同的緩存處理,配置靈活,並且支持FastCGI_Cache,主要用於對FastCGI的動態程序進行緩存。配合着第三方的ngx_cache_purge,對制定的URL緩存內容可以的進行增刪管理。

(5)虛擬主機

有的網站訪問量大,需要負載均衡。然而並不是所有網站都如此出色,有的網站,由於訪問量太小,需要節省成本,將多個網站部署在同一臺服務器上。例如將www.jim.comwww.tim.com兩個網站部署在同一臺服務器上,兩個域名解析到同一個IP地址,但是用戶通過兩個域名卻可以打開兩個完全不同的網站,互相不影響,就像訪問兩個服務器一樣,所以叫兩個虛擬主機。

在服務器8080和8081分別開了一個應用,客戶端通過不同的域名訪問,根據server_name可以反向代理到對應的應用服務器。

虛擬主機的原理是通過HTTP請求頭中的Host是否匹配server_name來實現的

 

3.Nginx 反向代理爲什麼可以提高網站性能

Nginx 有個好處是它會把 Request 在讀取完整之前 buffer 住,

這樣交給後端的就是一個完整的 HTTP 請求, 從而提高後端的效率, 而不是斷斷續續的傳遞

(互聯網上連接速度一般比較慢) 。 同樣, Nginx 也可以把 response 給 buffer 住, 同

樣也是減輕後端的壓力

 

 

 

 

 

 

 

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