nginx 負載均衡配置詳解

基于 ${nginx_home}/conf/nginx.conf 文件配置實現,如下:

http {# 定義server地址upstream server_group {server 192.168.xxx.1:8080;server 192.168.xxx.2:8080;server 192.168.xxx.3:8080;}server {listen       80;location / {root   html;index  index.html index.htm; #  代理轉發,基于定義的 server_group 配置實現負載均衡proxy_pass http://server_group; }}
}

負載參數配置

其中,upstream server_group配置的是負分發服務器組的地址。服務負載默認輪詢負載,也支持參數化自定義負載配置:weight、backup、max_fails、fail_timeout 等。例如:

upstream server_group {server 192.168.xxx.1:8080 backup;server 192.168.xxx.2:8080 weight=1;server 192.168.xxx.3:8080 max_fails=3 fail_timeout=15s;
}
輪詢[默認]

該策略會將每個請求按時間順序逐一分配到不同的后端服務器,如果某個后端服務器 down 掉,自動從輪詢列表中剔除該服務。

權重(weight)

該策略指定每個服務的權重比例,權重越高被分配的客戶端(請求)也就越多,weight 和訪問比率成正比。

weight :指定輪詢權值,默認值為1。常用于服務主機性能不統一,將性能好的主機分配高權重來發揮服務器最大性能。

down:表示當前的server暫時不參與負載均衡。

fail_timeout:單位為秒,默認是10秒。指定一段時間內,請求經歷了max_fails次失敗后,該server不能訪問的時間(暫停服務的時間)。max_fails可以和fail_timeout一起使用:預留的備份機器。當其他所有的非backup機器故障或忙時,才會請求backup機器,因此這臺機器的壓力最輕。

max_fails:在fail_timeout時間范圍內,允許請求的最大失敗次數,默認為1。當達到最大失敗次數時,會在fail_timeout時間內不再次被選擇,返回 proxy_next_upstream 模塊定義的錯誤。

fail_timeout:單位為秒,默認是10秒。在指定時間內,請求max_fails次失敗后,該server不能訪問的時間(暫停服務的時間)。max_fails和 fail_timeout一起使用。

最少連接(least_conn)

該策略會將請求分配到連接數最少的服務上。

upstream server_group {least_conn;server 192.168.xxx.1:8080;server 192.168.xxx.2:8080; 
}
哈希(ip_hash)

該策略按照每個請求 ip 的 hash 結果分配后端服務器,導致每個訪客會固定訪問一個后端服務器。可解決了動態網頁存在的session共享問題。

地址哈希法:根據獲取的客戶端ip地址,通過哈希函數計算得到一個定長hash值,然后使用這個值來決定將請求分配給哪臺后端服務器。采用源地址哈希法進行負載均衡,同一ip地址的客戶端,在后端服務器列表不變情況下,其每次請求都會映射到同一臺服務器訪問。

哈希值映射:將哈希值映射到可用的后端服務器。通常,哈希值與后端服務器的數量相除并取余數,以次確定要將請求分配到哪臺服務器。

例如:如果有3臺后端服務器,哈希值為12,則計算:12 % 3 = 0,那么請求將路由到第一臺后端服務器

upstream server_group {ip_hash;server 192.168.xxx.1:8080;server 192.168.xxx.2:8080; 
}

轉發請求頭配置


location / {root   html;index  index.html index.htm; # 代理轉發,基于定義的 server_group 配置實現負載均衡proxy_pass http://server_group; proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Real-PORT $remote_port;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11741.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11741.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11741.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python數據分析——時間序列

時間序列 前言一、Datetime 模塊常用函數和數據結構的詳細解釋datetime模塊示例一示例二 二、時間運算示例一示例二示例三 三、時間序列分析自回歸(Autoregressive model/AR)模型示例 滑動平均(moving average model/MA)模型示例 自回歸滑動平均(Autoregressive moving average…

持續總結中!2024年面試必問 100 道 Java基礎面試題(四十五)

上一篇地址:持續總結中!2024年面試必問 100 道 Java基礎面試題(四十四)-CSDN博客 八十九、在Java中,什么是線程局部變量(ThreadLocal變量)? 在Java中,ThreadLocal變量是…

企業微信hook接口協議,ipad協議http,發送鏈接的方式邀請成員進群

發送鏈接的方式邀請成員進群 參數名必選類型說明uuid是String每個實例的唯一標識,根據uuid操作具體企業微信 請求示例 {"uuid":"3240fde0-45e2-48c0-90e8-cb098d0ebe43","roomid":10696052955013729, "vids":[788130334…

Flutter 中的 CircleAvatar 小部件:全面指南

Flutter 中的 CircleAvatar 小部件:全面指南 在 Flutter 中,CircleAvatar 是一個用于顯示頭像的圓形控件,通常包含一個圖標、圖片或者一個簡單的文本字符。它在設計上與 Material Design 指南中的頭像規范相匹配,常用于展示用戶信…

C# 常用匯總

時間處理 public static class DateTimeHelper{/// <summary>/// 獲取當前時間戳&#xff08;Unix時間戳&#xff09; /// </summary>/// <returns></returns>public static long GetCurrentUnixTimestamp(){DateTimeOffset offset DateTimeOffset.…

Qt---文件系統

一、基本文件操作 1. QFile對文件進行讀和寫 QFile file( path 文件路徑) 讀&#xff1a; file.open(打開方式) QlODevice::readOnly 全部讀取->file.readAll()&#xff0c;按行讀->file.readLine()&#xff0c;atend()->判斷是否讀到文件尾 …

Java網絡編程基礎

Java網絡編程基礎主要涉及進程間通信、網絡通信協議、IP地址和端口以及Java提供的網絡應用編程接口等核心概念。 進程間通信是Java網絡編程的基礎。進程是運行中的程序&#xff0c;而進程間通信則是指不同進程之間進行數據交換和共享信息的過程。在Java中&#xff0c;進程間的…

STM32存儲左右互搏 USB接口FATS文件讀寫U盤

STM32存儲左右互搏 USB接口FATS文件讀寫U盤 STM32的USB接口可以例化為Host主機從而對U盤進行操作。SD卡/MicroSD/TF卡也可以通過讀卡器轉換成U盤使用。這里介紹STM32CUBEIDE開發平臺HAL庫實現U盤FATS文件訪問的例程。 USB接口介紹 常見的USB接口電路部分相似而有不同的連接器…

K8S -----二進制搭建 Kubernetes v1.20

目錄 一、準備環境 1.1 修改主機名 1.2 關閉防火墻&#xff08;三臺一起&#xff0c;這里只展示master01&#xff09; 1.3 在master添加hosts&#xff08;依舊是三臺一起&#xff09; 1.4 調整內核參數并開啟網橋模式 二、部署docker引擎 三、部署 etcd 集群 1.在mast…

15.JUC原子類

文章目錄 JUC原子類1.JUC中的Atomic原子操作包1.1. 基本原子類&#xff08;Basic Atomic Classes&#xff09;1.2. 數組原子類&#xff08;Array Atomic Classes&#xff09;1.3. 引用原子類&#xff08;Reference Atomic Classes&#xff09;4. 字段更新原子類&#xff08;Fie…

StackQueue+泛型簡單理解

&#x1f341; 個人主頁&#xff1a;愛編程的Tom&#x1f4ab; 本篇博文收錄專欄&#xff1a;Java專欄&#x1f449; 目前其它專欄&#xff1a;c系列小游戲 c語言系列--萬物的開始_ &#x1f389; 歡迎 &#x1f44d;點贊?評論?收藏&#x1f496;三連支持一…

ddpm Denoising Diffusion Probabilistic Model 學習筆記

目錄 Stable Diffusion 文章的貢獻抽象出來就兩個 潛空間上做擴散生成 ddpm(Denoising Diffusion Probabilistic Model)學習筆記 算法原理 unet預測噪聲 unet推理過程 重參數化技巧 &#xff08;1&#xff09;利用前一時刻的 xt-1 得到任意時刻的噪聲圖片 xt&#xff…

LeetCode2215找出兩數組的不同

題目描述 給你兩個下標從 0 開始的整數數組 nums1 和 nums2 &#xff0c;請你返回一個長度為 2 的列表 answer &#xff0c;其中&#xff1a;answer[0] 是 nums1 中所有 不 存在于 nums2 中的 不同 整數組成的列表。answer[1] 是 nums2 中所有 不 存在于 nums1 中的 不同 整數組…

Linux poweroff命令教程:如何實現一鍵關機(附實例詳解和注意事項)

Linux poweroff命令介紹 poweroff命令是用來關閉系統的。當你執行這個命令時&#xff0c;它會發送一個信號給系統&#xff0c;告訴系統關閉所有的進程&#xff0c;然后關閉系統。這個命令非常有用&#xff0c;特別是在你需要遠程關閉系統&#xff0c;或者你的系統沒有圖形用戶…

Autosar架構

藍框那種叫component&#xff0c;綠框的叫function cluster。 接口 有三種接口&#xff0c;RTE跟SWC之間鏈接的叫Autosar Interface&#xff0c;RTE跟BSW的Components鏈接是Standardized Interface&#xff0c;RTE跟BSW的services鏈接的是Standardized Autosar Interface。 St…

項目部署到線上proxytable代理失效nginx報404的問題

我的項目是在vue的config文件夾中的index.js中配置了接口地址 &#xff0c;本地跑的時候都能訪問&#xff0c;放到線上就報404&#xff1b; module.exports {dev: {// PathsassetsSubDirectory: static,assetsPublicPath: /,proxyTable: {/xxx: {target: http://xxxxxxxx:xxx…

分享四種CAD圖紙加密方法,嚴防盜圖

在數字化時代&#xff0c;cad圖紙的盜用和非法傳播問題日益突出。對于企業和設計師來說&#xff0c;保護設計成果的安全性和原創性&#xff0c;采取有效的cad加密方法至關重要。本文將分享四種cad加密方法&#xff0c;幫助您嚴防盜圖&#xff0c;保護圖紙安全。 使用cad軟件內…

網絡協議的分類

1.概要 網絡協議可以分為三類&#xff1a; 封裝協議路由協議功能類協議 2.分類說明 OSPF報文直接調用_ IP協議__協議進行封裝&#xff0c;以目的地址_244.0.0.5 __發送到所有的OSPF路由器? 244.0.0.1 所有主機&#xff1b;244.0.0.2 所有路由器&#xff1b;244.0.0.6 指定…

【前端每日一題】day5

JS 實現繼承的幾種方式 在JavaScript中&#xff0c;實現繼承的幾種方式包括原型鏈繼承、構造函數繼承、組合繼承、原型式繼承、寄生式繼承和組合式繼承。 原型鏈繼承&#xff1a; function Parent() {this.name Parent; } Parent.prototype.sayHello function() {console.…

當它還是幼生期的時候,及早離開它!

當我們有豐富的精神生活時&#xff0c;充實的知識吸收儲備時&#xff0c;為自己的每一點進步而欣慰時&#xff0c;我們就不會有失敗的憂慮。也不會有孤單的自憐。 沒有人是弱者&#xff0c;每個人都有自己活著的方式&#xff0c;當你內心強大時&#xff0c;你會尊重每一個“弱者…