nginx負載均衡

2021-07-14 23:02:40 字數 2402 閱讀 3700

nginx負載均衡的理解

nginx是乙個輕量級的、高效能的webserver,他主要可以幹下面兩件事:

作為http伺服器(和apache的效果一樣)

作為反向**伺服器實現負載均衡

現在nginx到處都可以見到,經常會看到宕機後的網頁會顯示nginx的字樣,這也說明nginx由於高效能、使用配置簡、開源單這些特點被越來越多的使用者所接受,所使用。

其中第一種作為http伺服器,結合php-fpm程序,對發來的請求進行處理,nginx本身並不會解析php,他只是作為乙個伺服器,接受客戶端發來 的請求,如果是php請求,則交給php程序處理,並將php處理完成之後的結果傳送給客戶端。這個很簡單,安裝好nginx+php-fpm之後配置好 各自的配置檔案,啟動就可以實現。執行原理可以看下面這段解釋:

nginx不支援對外部程式的直接呼叫或者解析,所有的外部程式(包括

php)必須通過

fastcgi

介面來呼叫。

fastcgi

介面在linux

下是socket

(這個socket

可以是檔案

socket

,也可以是

ip socket

)。為了呼叫

cgi程式,還需要乙個

fastcgi的(

可以理解為用於啟動另乙個程式的程式),這個

繫結在某個固定

socket

上,如埠或者檔案

socket

。當nginx

將cgi

請求傳送給這個

socket

的時候,通過

fastcgi

介面,接收到請求,然後派生出乙個新的執行緒,這個執行緒呼叫直譯器或者外部程式處理指令碼並讀取返回資料;接著,

再將返回的資料 通過

fastcgi

介面,沿著固定的

socket

傳遞給nginx

;最後,

nginx

將返回的資料傳送給客戶端。這就是

nginx+fastcgi

的整個 運作過程,如圖下圖所示。

反向**是和正向**(或者叫**) 相反的,**大家定聽過吧,為了更方便的訪問b

資源,通過

a資源間接的訪問

b資源,特點就是使用者知道自己最終要訪問的**是什麼,但是反向**使用者是不知 道**伺服器後邊做了什麼處理的,反向**中服務真正的處理伺服器放在內網,對外網而言只可以訪問反向**伺服器,這也大大提高了安全性。

簡單配置:

在http

段加入以下**

upstream a.com

server

}**是發展初期,nginx只**了後端一台伺服器,但由於**名氣大漲訪問的人越來越多一台伺服器實在是頂不住,於是我們加了多台伺服器,那麼多台伺服器又怎麼配置**呢,這裡以兩台伺服器為案例,為大家做演示。

1.upstream 負載均衡模組說明

案例:下面設定負載均衡的伺服器列表。

配置ip_hash負載均衡

ip_hash,每個請求按訪問ip的hash結果分配,這樣來自同乙個ip的訪客固定訪問乙個後端伺服器,有效解決了動態網頁存在的session共享問題。(一般電子商務**用的比較多)

upstream webservers {

ip_hash;

server 192.168.18.201 weight=1 max_fails=2 fail_timeout=2;

server 192.168.18.202 weight=1 max_fails=2 fail_timeout=2;

#server 127.0.0.1:8080 backup;

nginx 負載均衡 Nginx負載均衡策略

nginx提供的負載均衡策略有2種 內建策略和擴充套件策略。內建策略為輪詢 預設 加權輪詢,ip hash,第三方。upstream mysvr1 輪詢 每個請求按照時間順序逐一的分配到每乙個後台伺服器上。如果某台伺服器宕機了,將會自動的剔除宕機的服務。nginx預設就是輪詢其權重都預設為1,伺服器...

nginx負載均衡

nginx 的 upstream目前支援 4 種方式的分配 1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2 weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。3 ip hash 每個請求按訪問ip的hash...

nginx負載均衡

nginx s stop quick exit nginx s quit graceful quit nginx s reload changing configuration,starting a new worker,quitting an old worker gracefully nginx...