欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

2.無(wú)阻塞 I/O & 異步事件

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

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 平臺(tái)部署

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

2.1 下載與解壓

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

2.2 注冊(cè)為 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"
# 啟動(dòng)服務(wù)
net start nginx

2.3 配置文件位置

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

2.4 常用命令

# 啟動(dòng)
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 平臺(tái)部署

適用場(chǎng)景:生產(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ā);對(duì)等服務(wù)器無(wú)需額外指令。

4.2 Least-Connected(最少連接)

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

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

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

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 個(gè)請(qǐng)求中,srv1 將承擔(dān) 4 個(gè),其他各 1 個(gè)??膳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;   # 僅在主組不可用時(shí)才使用
    server srv3.example.com down;     # 永久下線(手動(dòng)維護(hù))
}

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

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

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

流程

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

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

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

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

6.1 連接與緩沖

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

6.2 超時(shí)配置

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

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 可用于請(qǐng)求耗時(shí)分析、后端性能監(jiān)控。

7.3 Prometheus 集成

8. 常見故障排查

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

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

  • 動(dòng)態(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 雙平臺(tái)安裝、服務(wù)化
  3. 核心調(diào)度算法:輪詢、最少連接、IP 哈希、加權(quán)、備用/下線
  4. 健康檢查(被動(dòng) & 主動(dòng))
  5. 性能與內(nèi)核調(diào)優(yōu)
  6. 監(jiān)控、日志采集與可視化
  7. 常見故障排查與進(jìn)階功能

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

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

相關(guān)文章

最新評(píng)論