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

Nginx高可用配置實戰(zhàn)教程之負(fù)載均衡?+?健康檢查?+?動態(tài)擴(kuò)展

 更新時間:2017年08月31日 14:17:38   作者:IT小哥哥呀  
本文通過電商商品服務(wù)集群的實戰(zhàn)案例,詳細(xì)介紹了從零搭建Nginx高可用架構(gòu)的全過程,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

?? Nginx高可用配置實戰(zhàn):負(fù)載均衡 + 健康檢查 + 動態(tài)擴(kuò)展

一篇從零搭建到實測上線的高可用 Nginx 負(fù)載均衡案例教程。

?? 一、背景與目標(biāo)

在現(xiàn)代業(yè)務(wù)中,單臺應(yīng)用服務(wù)器往往無法承載高并發(fā)請求。
Nginx 作為輕量級高性能的反向代理服務(wù)器,能同時實現(xiàn):

  • ? 負(fù)載均衡(分擔(dān)后端壓力)
  • ? 健康檢查(自動移除異常節(jié)點)
  • ? 動態(tài)擴(kuò)展(不重啟即更新配置)

本文通過一個電商商品服務(wù)集群的實戰(zhàn)項目,帶你從零實現(xiàn)高可用 Nginx 架構(gòu)。

??? 二、項目架構(gòu)設(shè)計

我們模擬一個商品服務(wù)集群(product service):

節(jié)點名稱IP說明
app1192.168.10.101主節(jié)點
app2192.168.10.102副節(jié)點
app3192.168.10.103擴(kuò)容節(jié)點
nginx-lb192.168.10.10負(fù)載均衡代理服務(wù)器

請求流程如下:

Client → Nginx (負(fù)載均衡+健康檢查)
          ↓
   ┌───────────────┬───────────────┬───────────────┐
   │ App1          │ App2          │ App3          │
   │ 商品服務(wù)節(jié)點1 │ 商品服務(wù)節(jié)點2 │ 商品服務(wù)節(jié)點3 │
   └───────────────┴───────────────┴───────────────┘

?? 三、負(fù)載均衡基礎(chǔ)配置

1?? 安裝 Nginx

sudo apt update
sudo apt install nginx -y

查看版本:

nginx -v

2?? 配置 upstream 實現(xiàn)負(fù)載均衡

編輯 /etc/nginx/conf.d/loadbalance.conf

upstream product_cluster {
    # 輪詢策略(默認(rèn))
    server 192.168.10.101:8080 max_fails=3 fail_timeout=10s;
    server 192.168.10.102:8080 max_fails=3 fail_timeout=10s;
    server 192.168.10.103:8080 max_fails=3 fail_timeout=10s backup;
}
server {
    listen 80;
    server_name product.demo.local;
    location / {
        proxy_pass http://product_cluster;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

?? 輪詢模式默認(rèn)自動分配請求
?? max_fails:健康檢查失敗次數(shù)閾值
?? backup:備用節(jié)點,僅主節(jié)點失效時啟用

保存后測試:

nginx -t
systemctl reload nginx

?? 四、加入健康檢查模塊

Nginx 開源版不自帶健康檢查模塊,我們可通過 ngx_http_upstream_check_modulenginx-plus 實現(xiàn)。

實戰(zhàn)方案(使用 openresty)

如果使用 OpenResty (推薦)

sudo apt install openresty -y

配置文件 /usr/local/openresty/nginx/conf/nginx.conf

http {
    upstream product_cluster {
        server 192.168.10.101:8080;
        server 192.168.10.102:8080;
        check interval=5000 rise=2 fall=5 timeout=3000 type=http;
        check_http_send "HEAD /health HTTP/1.0\r\n\r\n";
        check_http_expect_alive http_2xx http_3xx;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://product_cluster;
        }
        location /status {
            check_status;
            access_log off;
            allow 192.168.10.0/24;
            deny all;
        }
    }
}

訪問 http://nginx-lb/status 可以實時看到健康狀態(tài):

IP狀態(tài)延遲
192.168.10.101up12ms
192.168.10.102down-
192.168.10.103up8ms

?? 五、實現(xiàn)動態(tài)擴(kuò)展與熱更新

當(dāng)新增一臺應(yīng)用服務(wù)器時,只需修改 upstream 段:

upstream product_cluster {
    include /etc/nginx/upstreams/*.conf;
}

然后在 /etc/nginx/upstreams/ 目錄中增加或刪除節(jié)點配置文件:

echo "server 192.168.10.104:8080;" > /etc/nginx/upstreams/node4.conf

無需重啟,僅需平滑加載:

nginx -s reload

?? 這樣 Nginx 就能動態(tài)感知新節(jié)點加入!

?? 六、日志分析與請求分布監(jiān)控

打開訪問日志:

/var/log/nginx/access.log

內(nèi)容示例:

192.168.10.201 - - [05/Nov/2025:14:32:01 +0800] "GET /api/product/1001 HTTP/1.1" 200 524 "-" "Mozilla" upstream_addr=192.168.10.101:8080
192.168.10.201 - - [05/Nov/2025:14:32:02 +0800] "GET /api/product/1002 HTTP/1.1" 200 530 "-" "Mozilla" upstream_addr=192.168.10.102:8080

我們可以統(tǒng)計各節(jié)點命中率:

awk '{print $NF}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

輸出:

240 192.168.10.101:8080
235 192.168.10.102:8080
225 192.168.10.103:8080

通過 Grafana + Loki,還能將這些日志實時可視化。

?? 七、實戰(zhàn)驗證

模擬異常場景:

sudo systemctl stop product-service@192.168.10.102

訪問 /status 頁面:

節(jié)點狀態(tài)
app1up
app2? down
app3up

Nginx 自動將 app2 從負(fù)載池中移除,保持服務(wù)不中斷。
恢復(fù)服務(wù)后再次上線:

sudo systemctl start product-service@192.168.10.102

狀態(tài)自動恢復(fù)為 “up”。

?? 八、性能與高可用總結(jié)

功能技術(shù)點說明
負(fù)載均衡upstream 輪詢均衡分配請求
健康檢查openresty check 模塊自動移除異常節(jié)點
動態(tài)擴(kuò)展include + reload實現(xiàn)節(jié)點熱更新
監(jiān)控分析日志統(tǒng)計 + Grafana實時監(jiān)控請求分布

?? 九、項目實戰(zhàn)結(jié)構(gòu)目錄

/etc/nginx/
 ├── conf.d/
 │    └── loadbalance.conf
 ├── upstreams/
 │    ├── node1.conf
 │    ├── node2.conf
 │    └── node3.conf
 ├── logs/
 │    └── access.log
 └── nginx.conf

?? 十、總結(jié)與思考

通過本次實戰(zhàn),我們實現(xiàn)了:

  • ? 從零搭建 Nginx 負(fù)載均衡集群
  • ? 健康檢測與節(jié)點自動剔除
  • ? 動態(tài)擴(kuò)展不影響業(yè)務(wù)
  • ? 日志實時分析請求命中率

這套方案非常適合中小企業(yè)、內(nèi)部微服務(wù)架構(gòu)、測試環(huán)境或生產(chǎn)高可用場景。

到此這篇關(guān)于Nginx高可用配置實戰(zhàn)教程之負(fù)載均衡 + 健康檢查 + 動態(tài)擴(kuò)展的文章就介紹到這了,更多相關(guān)Nginx高可用配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx修改默認(rèn)80端口(解決跟Tomcat的端口沖突)

    Nginx修改默認(rèn)80端口(解決跟Tomcat的端口沖突)

    本文主要介紹了Nginx修改默認(rèn)80端口(解決跟Tomcat的端口沖突),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 詳解Nginx配置文件

    詳解Nginx配置文件

    Nginx是lgor Sysoev為俄羅斯訪問量第二的rambler.ru站點設(shè)計開發(fā)的,Nginx功能豐富,可作為HTTP服務(wù)器,也可作為反向代理服務(wù)器,郵件服務(wù)器。這篇文章主要介紹了Nginx配置文件,需要的朋友參考下
    2017-01-01
  • Nginx與Tomcat之間的關(guān)系及說明

    Nginx與Tomcat之間的關(guān)系及說明

    Nginx和Tomcat在現(xiàn)代Web應(yīng)用架構(gòu)中扮演重要角色,Nginx主要負(fù)責(zé)處理HTTP請求、反向代理、負(fù)載均衡、SSL加密和靜態(tài)資源服務(wù),而Tomcat則專注于處理動態(tài)請求和運行JavaWeb應(yīng)用,它們通過反向代理和負(fù)載均衡機(jī)制緊密合作,優(yōu)化系統(tǒng)性能和擴(kuò)展性,適用于高并發(fā)和大流量場景
    2025-02-02
  • nginx搭建高可用集群的實現(xiàn)方法

    nginx搭建高可用集群的實現(xiàn)方法

    本文主要介紹了nginx搭建高可用集群的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 使用Nginx解決跨域訪問問題的完整案例

    使用Nginx解決跨域訪問問題的完整案例

    在現(xiàn)代的Web開發(fā)中,跨域訪問是一種常見的需求,由于瀏覽器的同源策略,不同域名之間的訪問存在一定的限制,本文將介紹如何使用Nginx來解決跨域訪問的問題,并通過一個完整的實例來展示,需要的朋友可以參考下
    2024-03-03
  • Windows環(huán)境下Nginx?服務(wù)器?SSL?證書安裝部署操作過程

    Windows環(huán)境下Nginx?服務(wù)器?SSL?證書安裝部署操作過程

    這篇文章主要介紹了Windows環(huán)境下Nginx?服務(wù)器?SSL?證書安裝部署,指導(dǎo)您如何在Windows Nginx 服務(wù)器中安裝 SSL 證書,本文給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • Nginx反向代理配置React前端與Python后端全過程

    Nginx反向代理配置React前端與Python后端全過程

    前后端分離項目里,前端通常是 React 打包后的靜態(tài)資源,后端是 Python(FastAPI/Flask)提供的 API,生產(chǎn)環(huán)境一般用 Nginx 做統(tǒng)一入口,本文只講 Nginx 反向代理的核心配置思路和關(guān)鍵片段,需要的朋友可以參考下
    2026-02-02
  • Nginx $remote_addr和$proxy_add_x_forwarded_for變量的實現(xiàn)

    Nginx $remote_addr和$proxy_add_x_forwarded_for變量的實現(xiàn)

    本文主要介紹了Nginx $remote_addr和$proxy_add_x_forwarded_for變量的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • nginx虛擬主機(jī)防webshell完美版

    nginx虛擬主機(jī)防webshell完美版

    nginx虛擬主機(jī)防webshell完美版,使用nginx的朋友可以參考下。
    2010-11-11
  • 在nginx中設(shè)置三級域名的方法示例

    在nginx中設(shè)置三級域名的方法示例

    這篇文章主要介紹了在nginx中設(shè)置三級域名的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12

最新評論

天峻县| 怀柔区| 井陉县| 田林县| 大竹县| 句容市| 格尔木市| 山阳县| 临城县| 甘谷县| 舞钢市| 灵石县| 三明市| 衡山县| 贡嘎县| 阜平县| 金华市| 平和县| 莒南县| 邹城市| 通山县| 新野县| 涡阳县| 萝北县| 南岸区| 沂源县| 乌拉特后旗| 广水市| 大理市| 桑植县| 故城县| 新津县| 邯郸县| 铜梁县| 曲阳县| 蒙阴县| 贡嘎县| 彰化县| 根河市| 高安市| 天柱县|