Nginx伺服器ip hash策略

2021-09-13 14:50:31 字數 1121 閱讀 1487

注:本次ip_hash策略驗證基於nginx-1.8.0版本

簡介:當nginx伺服器的upstream輪詢策略配置為ip_hash的時候,nginx路由使用者請求採用的是通過終端使用者的ip位址路由(hash演算法)到指定的後端伺服器

下面基於乙個請求結合nginx原始碼詳細分析一下nginx的hash策略

基礎介紹:

nginx伺服器:172.30.0.206

後端伺服器: 172.30.0.98:30523

172.30.0.98:30059

upstream 輪詢策略ip_hash本例旨在分析ip_hash策略

以上**可以看出nginx伺服器迴圈iphp->addrlen次 做hash求值,而iphp-addrlen在ipv4網路下預設為3,見下圖。也就是說 迴圈三次最終算出乙個hash值,每次迴圈獲取乙個ip段(iphp->[i]),由此得知如果ip位址固定,初始hash值固定那麼最終的hash值也就確定。初始hash值是固定的見下圖預設為89. 所以最終的hash值只和ip位址的前三段有關係,也就是說在通網段訪問nginx得到的hash值是固定的。嚴格意義上說應該是ip前三段一樣的都會得出同樣的hash值。

如下**分析,如果沒有設定權重,那麼就會走到if**段, 通過上面求出的hash值 % 後端server個數得到乙個值,這個值就是 upstream中server的索引

總結:在ipv4 網路下、nginx版本1.8.0, 輪詢策略ip_hash

1、指定客戶端的ip對應的後端伺服器是固定的

2、ip位址前三段一樣的客戶端請求會路由到同乙個後端伺服器

Nginx 搭建Nginx伺服器

在ip位址為192.168.4.5的主機上安裝部署nginx服務,並可以將nginx伺服器,要求編譯時啟用如下功能 支援ssl加密功能 設定nginx賬戶及組名稱均為nginx nginx伺服器公升級到更高版本。步驟一 構建nginx伺服器 1 使用原始碼包安裝nginx軟體包 root proxy...

mysql遊戲伺服器快取 遊戲伺服器快取策略

1 什麼是快取 在資料庫與伺服器邏輯之間加入的資料層 2 作用 減少資料庫操作 伺服器使用mysql作為資料庫,mysql每秒鐘併發數量有限,所以我們要減少mysql的操作。3 erlang的快取 erlang 在記憶體中可用 程序字典 gen state ets 儲存變數,理論上三種方式都可以作為...

nginx伺服器總結

1.nginx不支援對外部程式的直接呼叫或者解析,所有的外部程式 包括php 必須通過fastcgi介面來呼叫。fastcgi介面在linux下是socket,這個socket可以是檔案socket,也可以是ip socket 2.nginx採用的是非同步非阻塞模式,只有乙個主程序和幾個子程序,當請...