nginx負載均衡篇(二)

2021-07-09 23:31:52 字數 4540 閱讀 7278

需要模組:ngx_http_upstream_module +  ngx_http_proxy_module    或者   ngx_http_upstream_module +  ngx_http_fastcgi_module 

小知識:upstream 只能應用於http上下文,而proxy_pass可以應用於location,if in location,limit_except上下文

先嘗試基於http協議的反向**:

vim  /etc/nginx/nginx.conf, 在http{}中新增如下配置:

server 172.16.52.60   weight=1 max_fails=2 fail_timeout=4s   backup;     備用的sorry server

#ip_hash;

#health_check  interval=3s fails_number=2;

}測試:瀏覽器中輸入www.a.com

說明:172.16.52.59和172.16.52.60這兩台主機配置的是httpd服務,因此這裡不必要一定要和前端的反向**伺服器配置一樣的服務,即完全和服務無關,但是和埠有關。。。

排程演算法: 

1.ip_hash  :基於源位址hash,如果來自於同乙個ip的請求,將定向到同一臺伺服器

2.其它:還沒有介紹健康檢查的配置,但是nginx的session會話保持有三種方式:

1.基於ip,即會話的內容,一些headers

2.基於cluster,只適用於小範圍的主機,將快取同步到其它節點主機,缺點是同步的資料量過大或者說同步頻繁會消耗大量的頻寬,因此只適用於區域網內數量少的主機。

3.基於共享儲存,有點,即使節點掛了也沒有關係,因為快取保留在專門的恭喜那個儲存裡面了,缺點是如果不同節點同時往共享儲存裡面寫的話會存在導致共享儲存裡面的資料損壞,這是致命的。。。。

mkdir /var/cache/fastcgi -pv      建立快取目錄

chown nginx. /var/cache/fastcgi/ -r   修改快取屬主,確保有寫許可權

測試:  ab -n 5000 -c 500

fastcgi_cache_path path  [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size];

定義快取:快取空間等;

可應用的上下文 :http 

快取機制:

元資料:記憶體,即為keys_zone;

資料:磁碟,即為path; 

levels=#[:#[:#]]

levels=2:1

keys_zone=name:size

name: cache的識別符號;

size:元資料cache大小;

max_size:快取空間上限;

注意:呼叫快取時,至少應該指定三個引數

fastcgi_cache

fastcgi_cache_key

fastcgi_cache_valid 

如果是uri**,帶不帶/很關鍵

如果是正則匹配,後面絕對不能帶uri,即不能加/

如果上面的uri又被rewrite了,後面絕對不能帶uri

(1) proxy_pass url;

應用上下文:location, if in location, limit_except

proxy_pass後面的路徑不帶uri時,其會將location的uri傳遞給後端的主機;下面的示例會將/uri/傳遞給backend伺服器;

location  /uri/

proxy_pass後面的路徑是乙個uri時,其會將location的uri替換為後端主機自己的uri;

location  /uri/

如果location定義其uri時使用的正規表示式模式匹配,則proxy_pass後的路徑不能夠使用uri;

此處的http://hostname後面不能有任何uri,哪怕只有/也不可以;

在server段中新增

add_header via $server_addr;

除錯瀏覽器f12:就會看到via首部

connection:

keep-alive

date:

sat, 02 apr 2016 14:53:31 gmt

etag:

"1f-52f7974429cdd"

server:

nginx/1.8.1

via:

192.168.1.3

方法一:

vim nginx.conf

server i%h %l %u %t \"%r\" %>s %b \"%i\" \"%i\"" combined

測試:方法二:

vim nginx.conf

server

vim nginx.conf

server i%h %l %u %t \"%r\" %>s %b \"%i\" \"%i\"" combined

%h %l %u %t \"%r\" %>s %b \"%i\" \"%i\"" combined

測試:用瀏覽器強制重新整理,不要用快取!!後,檢視後端主機的日誌記錄格式

負載均衡 實現配置篇(Nginx)

負載均衡 實現配置篇 nginx 客串 屌絲的坑人表單神器 資料庫那點事兒 物件導向昇華 物件導向的認識 新生的初識 物件導向的番外 思想的夢遊篇 1 物件導向的認識 如何找出類 同類文章 負載均衡 概念認識篇 華麗的分割線 正文開始 首先我們來回顧下上篇的概念 負載均衡 分身的能力。既然要有分身的...

負載均衡 實現配置篇(Nginx)

客串 屌絲的坑人表單神器 資料庫那點事兒 物件導向昇華 物件導向的認識 新生的初識 物件導向的番外 思想的夢遊篇 1 物件導向的認識 如何找出類 同類文章 負載均衡 概念認識篇 還不了解負載均衡的,推薦你閱讀 負載均衡 概念認識篇 華麗的分割線 正文開始 首先我們來回顧下上篇的概念 負載均衡 分身的...

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

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