最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Windows與Linux環(huán)境下的高性能負(fù)載均衡教程

 更新時間:2025年05月20日 16:10:11   作者:Hello.Reader  
這篇文章主要介紹了Windows與Linux環(huán)境下的高性能負(fù)載均衡教程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1. NGINX 架構(gòu) & 工作原理

1.Master/Worker 進(jìn)程模型

  • Master:僅負(fù)責(zé)加載配置、管理 Worker(平滑重載、信號處理)。
  • Worker:事件驅(qū)動,一般與 CPU 核心數(shù)相同或略多,通過 epoll/kqueue 高效處理海量并發(fā)連接。

2.無阻塞 I/O & 異步事件

  • 每個 Worker 在一個線程內(nèi)即可管理上萬連接,極大降低上下文切換。

3.模塊化設(shè)計(jì)

HTTP、Stream、Mail 等子系統(tǒng)均可按需編譯模塊:

  • ngx_http_upstream_module(負(fù)載均衡)
  • ngx_http_stub_status_module(狀態(tài)監(jiān)控)
  • 第三方健康檢查模塊、Lua 腳本擴(kuò)展等。

2. Windows 平臺部署

適用場景:企業(yè)內(nèi)部測試、與 IIS 協(xié)同(通過 ARR / AJP 協(xié)議等)或方便 Windows 環(huán)境下快速部署。

2.1 下載與解壓

  1. 訪問 nginx.org(en) 下載頁
  2. 獲取 Stable version 的 ZIP 包,例如 nginx-1.24.0.zip。
  3. 解壓到 C:\nginx\ 目錄。

2.2 注冊為 Windows 服務(wù)(可選)

使用 NSSM(Non-Sucking Service Manager):

# 假設(shè) nssm.exe 已放在 C:\tools\nssm\nssm.exe
C:\tools\nssm\nssm install nginx "C:\nginx\nginx.exe"
# 啟動服務(wù)
net start nginx

2.3 配置文件位置

  • 主配置:C:\nginx\conf\nginx.conf
  • 日志:C:\nginx\logs\access.log / error.log

2.4 常用命令

# 啟動
C:\nginx\nginx.exe

# 平滑重載(重讀配置)
C:\nginx\nginx.exe -s reload

# 停止
C:\nginx\nginx.exe -s quit

小貼士:在 Windows 下,-s reload 可能不如 Linux 穩(wěn)定,可結(jié)合 NSSM 服務(wù)的重啟實(shí)現(xiàn)零 Downtime。

3. Linux 平臺部署

適用場景:生產(chǎn)環(huán)境首選。本文以 Ubuntu 為例,CentOS / RHEL 同理。

3.1 安裝(包管理/編譯安裝)

  • 3.1.1 包管理安裝
# Ubuntu / Debian
sudo apt update
sudo apt install -y nginx

# CentOS / RHEL
sudo yum install -y epel-release
sudo yum install -y nginx
  • 3.1.2 源碼編譯(自定義模塊)
# 安裝依賴
sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev \
                     libssl-dev

# 下載源碼并編譯
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar zxvf nginx-1.24.0.tar.gz && cd nginx-1.24.0

./configure \
  --prefix=/usr/local/nginx \
  --with-http_ssl_module \
  --with-http_v2_module \
  --with-http_stub_status_module \
  --with-stream \
  --with-stream_ssl_module
make && sudo make install

3.2 服務(wù)管理

Systemd

sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl reload nginx
sudo systemctl status nginx

配置目錄

  • /etc/nginx/nginx.conf:主配置
  • /etc/nginx/conf.d/*.conf:虛擬主機(jī)/負(fù)載均衡片段
  • /usr/share/nginx/html/:默認(rèn)靜態(tài)服務(wù)根

4. 核心負(fù)載均衡配置

以下示例均放在 http { … } 段內(nèi)。

4.1 基礎(chǔ) Round-Robin(輪詢)

upstream backend {
    server srv1.example.com:80;
    server srv2.example.com:80;
    server srv3.example.com:80;
}

server {
    listen 80;
    location / {
        proxy_pass http://backend;
    }
}
  • 特性:默認(rèn)輪詢,新連接依序分發(fā);對等服務(wù)器無需額外指令。

4.2 Least-Connected(最少連接)

upstream backend {
    least_conn;
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
}
  • 場景:請求耗時差異大,或部分節(jié)點(diǎn)性能不同,動態(tài)均衡更公平。

4.3 IP-Hash(基于客戶端 IP)

upstream backend {
    ip_hash;
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
}
  • 會話保持:同一客戶端 IP 始終打到同一后端,適用于有狀態(tài)應(yīng)用(Session、購物車等)。

4.4 加權(quán)(Weight)

upstream backend {
    server srv1.example.com weight=4;
    server srv2.example.com weight=1;
    server srv3.example.com weight=1;
}
  • 意義:每 6 個請求中,srv1 將承擔(dān) 4 個,其他各 1 個??膳c任意調(diào)度算法(輪詢、least_conn、ip_hash)聯(lián)合使用。

4.5 備用節(jié)點(diǎn) & 強(qiáng)制下線

upstream backend {
    server srv1.example.com;
    server srv2.example.com backup;   # 僅在主組不可用時才使用
    server srv3.example.com down;     # 永久下線(手動維護(hù))
}

5. 健康檢查與故障恢復(fù)

5.1 被動健康檢查(開箱即用)

  • max_fails:連續(xù)失敗次數(shù)
  • fail_timeout:失敗后多長時間內(nèi)禁用
upstream backend {
    server srv1.example.com max_fails=2 fail_timeout=15s;
    server srv2.example.com;
}

流程

  • 若 2 次請求超時/斷開,srv1 標(biāo)記為 Unhealthy;
  • 禁用 15s;
  • 15s 后首次新請求探活,成功即恢復(fù)。

5.2 主動健康檢查(NGINX Plus / 第三方模塊)

  • NGINX Plus:內(nèi)置 health_check 與可視化 API。
  • Open Source:可編譯 nginx-upstream-check-module,或使用 Lua 腳本按固定間隔 http 探測。

6. 性能調(diào)優(yōu)

6.1 連接與緩沖

# 在 http{} 頂層設(shè)置
worker_connections  10240;      # 每 Worker 最大連接數(shù)
keepalive_timeout   65s;        # 客戶端長連接超時
keepalive_requests  100;        # 單連接最大請求數(shù)
  • proxy_buffers:調(diào)整上游響應(yīng)緩沖區(qū)
  • proxy_busy_buffers_size:大響應(yīng)場景優(yōu)化

6.2 超時配置

server {
    proxy_connect_timeout  3s;   # 建立 TCP 連接超時
    proxy_send_timeout     10s;  # 發(fā)送請求到后端超時
    proxy_read_timeout     30s;  # 接收后端響應(yīng)超時
}

6.3 內(nèi)核 & 網(wǎng)絡(luò)調(diào)優(yōu)

  • somaxconn
sysctl -w net.core.somaxconn=65535
  • tcp_tw_reuse/tcp_fin_timeout:加速 TIME_WAIT 回收
  • ulimit -n:提升文件描述符上限

7. 監(jiān)控 & 日志

7.1 Stub Status

server{} 段開啟:

location /nginx_status {
    stub_status on;
    allow  127.0.0.1;
    deny   all;
}

輸出示例:

Active connections: 291 
server accepts handled requests
 15394 15394 54123 
Reading: 0 Writing: 1 Waiting: 290

7.2 日志格式自定義

log_format main '$remote_addr - $remote_user [$time_local] '
                '"$request" $status $body_bytes_sent '
                '"$http_referer" "$http_user_agent" '
                'rt=$request_time ua="$upstream_addr" us="$upstream_response_time"';
access_log /var/log/nginx/access.log main;
  • rt/us 可用于請求耗時分析、后端性能監(jiān)控。

7.3 Prometheus 集成

8. 常見故障排查

場景錯誤表現(xiàn)排查思路
后端 502 Bad Gateway502 頁面檢查后端服務(wù)是否啟動;error.log 中定位 upstream prematurely closed
超時 504 Gateway請求超時調(diào)大 proxy_read_timeout;后端性能分析
配置重載失敗invalid number…語法檢查:nginx -t;注意分號、括號
連接數(shù)耗盡500 / 卡頓提升 worker_connections;監(jiān)控 Active connections

9. 進(jìn)階 & 拓展

  • 動態(tài) DNS 解析
server backend.example.com resolve; + resolver
  • gRPC & HTTP/2
http2 on;
grpc_pass grpc://backend;
  • 緩存proxy_cache_path + proxy_cache
  • 安全:IP 白名單、WAF(ModSecurity)、TLS 卸載與硬件加速

總結(jié)

本文系統(tǒng)地覆蓋了:

  1. NGINX 架構(gòu)與事件模型
  2. Windows 與 Linux 雙平臺安裝、服務(wù)化
  3. 核心調(diào)度算法:輪詢、最少連接、IP 哈希、加權(quán)、備用/下線
  4. 健康檢查(被動 & 主動)
  5. 性能與內(nèi)核調(diào)優(yōu)
  6. 監(jiān)控、日志采集與可視化
  7. 常見故障排查與進(jìn)階功能

通過以上實(shí)踐,您可在自研環(huán)境或生產(chǎn)集群中,快速搭建一個高可用、可擴(kuò)展的 HTTP 負(fù)載均衡層。后續(xù)可結(jié)合微服務(wù)網(wǎng)關(guān)(Service Mesh)、WAF、安全審計(jì)與灰度發(fā)布,實(shí)現(xiàn)更高級的流量控制與運(yùn)維自動化。

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Linux上搭建Minecraft服務(wù)器的方法步驟

    在Linux上搭建Minecraft服務(wù)器的方法步驟

    在 Linux(Ubuntu 12.04)上設(shè)置 Minecraft 服務(wù)器是一個相當(dāng)簡單的任務(wù),只需通過命令行即可完成,本文通過代碼示給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-11-11
  • ubuntu18.04和ns3.27環(huán)境下配置PyViz全過程

    ubuntu18.04和ns3.27環(huán)境下配置PyViz全過程

    在Ubuntu 18.04和NS3.27環(huán)境下配置PyViz時遇到無法定位軟件包的問題,通過增加軟件源并更新解決了問題,然后成功安裝了交互式Python,重新編譯后PyViz被啟用
    2025-12-12
  • Linux中實(shí)現(xiàn)開機(jī)自啟動的幾種常見方式及區(qū)別詳解

    Linux中實(shí)現(xiàn)開機(jī)自啟動的幾種常見方式及區(qū)別詳解

    在Linux中,有多個機(jī)制可以實(shí)現(xiàn)開機(jī)自啟動,它們在不同的初始化系統(tǒng)(如SysVinit、systemd)下有不同的表現(xiàn),以下是一些常見的自啟動方法及其區(qū)別,需要的朋友可以參考下
    2025-11-11
  • tr命令在統(tǒng)計(jì)英文單詞出現(xiàn)頻率中的妙用

    tr命令在統(tǒng)計(jì)英文單詞出現(xiàn)頻率中的妙用

    今天小編就為大家分享一篇關(guān)于tr命令在統(tǒng)計(jì)英文單詞出現(xiàn)頻率中的妙用,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • linux下端口被占用問題以及解除方式

    linux下端口被占用問題以及解除方式

    這篇文章主要介紹了linux下端口被占用問題以及解除方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Linux下查看DNS配置信息的常用命令說明

    Linux下查看DNS配置信息的常用命令說明

    本文介紹了在Linux系統(tǒng)中查看DNS配置的四種方法,包括查看/etc/resolv.conf文件、使用nslookup命令、使用dig命令以及使用nmcli和resolvectl工具,每種方法都有其適用場景和優(yōu)缺點(diǎn),建議根據(jù)實(shí)際情況選擇合適的方法
    2026-01-01
  • Linux實(shí)現(xiàn)日志高效搜索與實(shí)時監(jiān)控的終極指南

    Linux實(shí)現(xiàn)日志高效搜索與實(shí)時監(jiān)控的終極指南

    在開發(fā)和運(yùn)維的世界里,日志(Log)是系統(tǒng)運(yùn)行的黑匣子,它記錄了程序的每一次心跳、每一次異常、每一次請求,如何快速定位問題、精準(zhǔn)提取關(guān)鍵信息,成為每個工程師必須掌握的核心技能,本文將帶你深入 Linux 日志排查的實(shí)戰(zhàn)世界,從基礎(chǔ)命令到高級技巧,需要的朋友可以參考下
    2025-10-10
  • Linux?CentOS7?vim多文件與多窗口操作方式

    Linux?CentOS7?vim多文件與多窗口操作方式

    這篇文章主要介紹了Linux?CentOS7?vim多文件與多窗口操作方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 在Linux中查看及終止正在運(yùn)行的后臺程序方法

    在Linux中查看及終止正在運(yùn)行的后臺程序方法

    今天小編就為大家分享一篇在Linux中查看及終止正在運(yùn)行的后臺程序方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Linux ln 命令的使用

    Linux ln 命令的使用

    這篇文章主要介紹了Linux ln 命令的使用,幫助大家更好的理解和使用Linux,感興趣的朋友可以了解下
    2020-08-08

最新評論

三穗县| 阆中市| 扶绥县| 彝良县| 香港 | 盐池县| 巫溪县| 西贡区| 浮山县| 吉木萨尔县| 佳木斯市| 卓资县| 永修县| 班玛县| 永丰县| 普宁市| 阿尔山市| 广州市| 东安县| 扬中市| 新巴尔虎右旗| 康定县| 札达县| 若尔盖县| 纳雍县| 当阳市| 佛冈县| 垫江县| 海安县| 麦盖提县| 宁强县| 通海县| 勐海县| 星子县| 鄱阳县| 西平县| 东宁县| 遂宁市| 辛集市| 景德镇市| 绥宁县|