国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之負(fù)載均衡

這篇具有很好參考價(jià)值的文章主要介紹了分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之負(fù)載均衡。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1. 負(fù)載均衡

跨多個(gè)應(yīng)用程序?qū)嵗呢?fù)載平衡是一種常用技術(shù),用于優(yōu)化資源利用率、最大化吞吐量、減少延遲和確保容錯(cuò)配置。?使用 nginx 作為非常有效的HTTP負(fù)載平衡器,將流量分配到多個(gè)應(yīng)用程序服務(wù)器,可以提升Web應(yīng)用程序的性能,提高擴(kuò)展性和可靠性。

分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之負(fù)載均衡,【分布式-服務(wù)器Nginx】,分布式,服務(wù)器,nginx

使用 upstream定義一組服務(wù) 。

# 啟動(dòng)ruoyi-admin服務(wù)
[root@nginx-dev conf.d]# cd /home/apps
[root@nginx-dev apps]# java -jar ruoyi-admin.jar

# 啟動(dòng)tomcat服務(wù)
[root@nginx-dev ~]# /home/apache-tomcat-8.5.81/bin/startup.sh

# 在 /etc/nginx/conf.d文件夾下添加nginx配置文件:8003.conf
[root@nginx-dev ~]# cd /etc/nginx/conf.d
[root@nginx-dev conf.d]# vi 8003.conf   
[root@nginx-dev conf.d]# nginx -s reload

8003.conf 配置文件內(nèi)容:

upstream ruoyi-apps {
    #不寫(xiě),采用輪循機(jī)制
    server localhost:8080;
    server localhost:8088;
}

server {
    listen 8003;
    server_name ruoyi.loadbalance;

    location / {
        proxy_pass http://ruoyi-apps;
    }
    
    # 請(qǐng)求ie頁(yè)面
    location = /html/ie.html {
        root  /some/path/static;
    }

    # 請(qǐng)求字體文件
    location ^~ /fonts/ {
        root  /some/path/static;
    }

    # css|js|png|jpg|gif|ico 頁(yè)面
    location ~ \.(css|js|png|jpg|gif|ico) {
        root /some/path/static;
    }  
}

2. 負(fù)載均衡策略

1. 輪詢策略

upstream ruoyi-apps {
    #不寫(xiě),采用輪循機(jī)制
    server localhost:8080;
    server localhost:8088;
}

輪詢策略(Round Robin):默認(rèn)的負(fù)載均衡策略,將請(qǐng)求依次分配給每個(gè)后端服務(wù)器,循環(huán)往復(fù)。

例如,當(dāng)請(qǐng)求 nginx 的 8003 端口時(shí),會(huì)將請(qǐng)求輪詢轉(zhuǎn)發(fā)給 tomcat 和 ruoyi-admin 兩個(gè)后端服務(wù)器,即第1次請(qǐng)求會(huì)訪問(wèn)8080端口,第2次請(qǐng)求會(huì)訪問(wèn)8088端口,循環(huán)往復(fù)。

當(dāng)訪問(wèn) nginx 的 8003 端口時(shí) ,請(qǐng)求會(huì)進(jìn)入 8088 端口的 ruoyi-admin 服務(wù),當(dāng)填寫(xiě)完密碼以后點(diǎn)擊登錄,這次請(qǐng)求會(huì)進(jìn)入 8080 端口的 tomcat 服務(wù),因此總是登錄不成功。

分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之負(fù)載均衡,【分布式-服務(wù)器Nginx】,分布式,服務(wù)器,nginx

2. 最小連接策略

最少連接策略(Least Connections):將請(qǐng)求分配給當(dāng)前連接數(shù)最少的后端服務(wù)器,以達(dá)到負(fù)載均衡的目的。

upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
}

請(qǐng)注意,使用輪循機(jī)制或最少連接的負(fù)載平衡,每個(gè)客戶端的請(qǐng)求都可能分發(fā)到不同的服務(wù)器。不能保證同一客戶端將始終定向到同一服務(wù)器。?

3. IP 哈希策略

IP 哈希策略(IP Hash):根據(jù)客戶端 IP 地址的哈希值來(lái)選擇后端服務(wù)器,同一個(gè)客戶端的請(qǐng)求總是被分配到同一個(gè)后端服務(wù)器上。

upstream backend {
    ip_hash;
    server backend1.example.com;
    server backend2.example.com;
}
upstream ruoyi-apps {
    ip_hash;
    server localhost:8080;
    server localhost:8088;
}

server {
    listen 8003;
    server_name ruoyi.loadbalance;

    location / {
        proxy_pass http://ruoyi-apps;
    }
    
    # 請(qǐng)求ie頁(yè)面
    location = /html/ie.html {
        root  /some/path/static;
    }

    # 請(qǐng)求字體文件
    location ^~ /fonts/ {
        root  /some/path/static;
    }

    # css|js|png|jpg|gif|ico 頁(yè)面
    location ~ \.(css|js|png|jpg|gif|ico) {
        root /some/path/static;
    }  
}

此方法可確保來(lái)自同一客戶端的請(qǐng)求將始終定向到同一服務(wù)器,除非此服務(wù)器不可用。

Nginx的配置文件中定義了一個(gè)名為 ruoyi-apps 的 upstream 塊,其中包含兩個(gè)服務(wù)器 localhost:8080 和 localhost:8088,并使用 ip_hash 算法進(jìn)行負(fù)載均衡。這意味著每個(gè)客戶端的請(qǐng)求將被發(fā)送到同一個(gè)服務(wù)器,以確保會(huì)話一致性。接下來(lái),該配置文件定義了一個(gè)名為ruoyi.loadbalance的服務(wù)器塊,它監(jiān)聽(tīng)端口8003,并將所有請(qǐng)求代理到 ruoyi-apps 中定義的服務(wù)器組。這意味著所有來(lái)自客戶端的請(qǐng)求都將被轉(zhuǎn)發(fā)到localhost:8080或localhost:8088中的一個(gè)服務(wù)器上,以實(shí)現(xiàn)負(fù)載均衡。

4. 哈希策略

通用hash,允許用戶自定義hash的key,key可以是字符串、變量或組合。例如,key可以是配對(duì)的源 IP 地址和端口,也可以是 URI,如以下示例所示:?

upstream backend {
    hash $request_uri consistent;
    server backend1.example.com;
    server backend2.example.com;
}

請(qǐng)注意:基于 IP 的哈希算法存在一個(gè)問(wèn)題,那就是當(dāng)有一個(gè)上游服務(wù)器宕機(jī)或者擴(kuò)容的時(shí)候,會(huì)引發(fā)大量的路由變更,進(jìn)而引發(fā)連鎖反應(yīng),導(dǎo)致大量緩存失效等問(wèn)題。

假設(shè)我們基于 key 來(lái)做 hash,現(xiàn)在有 4 臺(tái)上游服務(wù)器,如果 hash 算法對(duì) key 取模,請(qǐng)求根據(jù)用戶定義的哈希鍵值均勻分布在所有上游服務(wù)器之間。當(dāng)有一臺(tái)服務(wù)器宕機(jī)的時(shí)候,就需要重新對(duì) key 進(jìn)行 hash,最后會(huì)發(fā)現(xiàn)所有的對(duì)應(yīng)關(guān)系全都失效了,從而會(huì)引發(fā)緩存大范圍失效。

分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之負(fù)載均衡,【分布式-服務(wù)器Nginx】,分布式,服務(wù)器,nginx

consistent參數(shù)啟用 ??ketama?? 一致哈希算法,如果在上游組中添加或刪除服務(wù)器,只會(huì)重新映射部分鍵,從而最大限度地減少緩存失效。?

分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之負(fù)載均衡,【分布式-服務(wù)器Nginx】,分布式,服務(wù)器,nginx

5. 加權(quán)輪詢策略

加權(quán)輪詢策略(Weighted Round Robin):根據(jù)后端服務(wù)器的權(quán)重來(lái)分配請(qǐng)求,權(quán)重越高的服務(wù)器被分配到的請(qǐng)求越多。

upstream my-server {
    server performance.server weight=3;
    server app1.server;
    server app2.server;
}

如上所示,每 5 個(gè)新請(qǐng)求將按如下方式分布在應(yīng)用程序?qū)嵗校? 個(gè)請(qǐng)求將定向到 performance.server,一個(gè)請(qǐng)求將轉(zhuǎn)到 app1.server,另一個(gè)請(qǐng)求將轉(zhuǎn)到 app2.server。?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-650826.html

到了這里,關(guān)于分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之負(fù)載均衡的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之代理緩沖與緩存

    分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之代理緩沖與緩存

    官方文檔:https://nginx.org/en/docs/http/ngx_http_proxy_module.html 代理緩沖用于臨時(shí)存儲(chǔ)從后端服務(wù)器返回的響應(yīng)數(shù)據(jù)。通過(guò)使用代理緩沖,Nginx可以在接收完整的響應(yīng)后再將其發(fā)送給客戶端,從而提高性能和效率。 ① 客戶端往往是用戶網(wǎng)絡(luò),情況復(fù)雜,可能出現(xiàn)網(wǎng)絡(luò)不穩(wěn)定,速度較

    2024年02月11日
    瀏覽(24)
  • 分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之HTTP反向代理

    分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之HTTP反向代理

    1. 正向代理和反向代理 正向代理是 客戶端 通過(guò)代理服務(wù)器訪問(wèn)互聯(lián)網(wǎng)資源的方式。在這種情況下,客戶端向代理服務(wù)器發(fā)送請(qǐng)求,代理服務(wù)器再向互聯(lián)網(wǎng)上的服務(wù)器發(fā)送請(qǐng)求,獲取資源并返回給客戶端。正向代理的典型應(yīng)用場(chǎng)景是翻墻,即通過(guò)代理服務(wù)器訪問(wèn)被封鎖的網(wǎng)站

    2024年02月14日
    瀏覽(22)
  • 分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之HTTPS協(xié)議配置

    分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之HTTPS協(xié)議配置

    1. HTTPS 協(xié)議 HTTPS 是一種通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的協(xié)議。它是HTTP的安全版本,通過(guò)使用 SSL 或 TLS 協(xié)議來(lái)加密和保護(hù)數(shù)據(jù)傳輸。HTTPS的主要目的是確保在客戶端和服務(wù)器之間傳輸?shù)臄?shù)據(jù)是加密的,以防止第三方竊聽(tīng)、篡改或偽裝。它通過(guò)使用公鑰加密和私鑰解密的方式來(lái)

    2024年02月11日
    瀏覽(20)
  • 分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之 HTTPS協(xié)議配置

    分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之 HTTPS協(xié)議配置

    1. HTTPS 協(xié)議 HTTPS 是一種通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的協(xié)議。它是HTTP的安全版本,通過(guò)使用 SSL 或 TLS 協(xié)議來(lái)加密和保護(hù)數(shù)據(jù)傳輸。HTTPS的主要目的是確保在客戶端和服務(wù)器之間傳輸?shù)臄?shù)據(jù)是加密的,以防止第三方竊聽(tīng)、篡改或偽裝。它通過(guò)使用公鑰加密和私鑰解密的方式來(lái)

    2024年02月11日
    瀏覽(25)
  • 分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之TCP反向代理和負(fù)載均衡

    分布式 - 服務(wù)器Nginx:一小時(shí)入門系列之TCP反向代理和負(fù)載均衡

    1. HTTP反向代理和TCP反向代理 Nginx可以作為HTTP反向代理和TCP反向代理。 HTTP反向代理是指Nginx作為Web服務(wù)器的代理服務(wù)器,接收客戶端的HTTP請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給后端的Web服務(wù)器,最后將Web服務(wù)器的響應(yīng)返回給客戶端。這種方式可以實(shí)現(xiàn)負(fù)載均衡、緩存、SSL終止等功能。 T

    2024年02月11日
    瀏覽(35)
  • Windows服務(wù)器設(shè)置Nginx實(shí)現(xiàn)分布式服務(wù)

    Windows服務(wù)器設(shè)置Nginx實(shí)現(xiàn)分布式服務(wù)

    下載Nginx-1.16.1版本。解壓到如下目錄: 設(shè)置環(huán)境變量: 檢查版本: 啟動(dòng)nginx.exe ,出現(xiàn)黑框一閃而過(guò),進(jìn)程中出現(xiàn)如下情況代表啟動(dòng)成功: 下載wiremock-standalone-2.25.1.jar,可以使用Maven配置pom.xml下載。注意下載standalone版本。新建ServerA、ServerB兩個(gè)目錄,分別拷貝jar,新建啟動(dòng)

    2024年02月07日
    瀏覽(29)
  • 分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx配置文件結(jié)構(gòu)

    分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx配置文件結(jié)構(gòu)

    Nginx的核心配置文件默認(rèn)是放在 /usr/local/nginx/conf/nginx.conf : nginx.conf 配置文件中默認(rèn)有三大塊:全局塊、events塊、http塊。其中http 塊中可以配置多個(gè)server塊,每個(gè)server塊又可以配置多個(gè)location塊。 01. user 指令 user指令也可以用于指定Nginx服務(wù)器worker進(jìn)程的運(yùn)行用戶和用戶組。它

    2024年02月10日
    瀏覽(32)
  • 分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx簡(jiǎn)介 | 下載安裝 | 啟動(dòng)和停止服務(wù)

    分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx簡(jiǎn)介 | 下載安裝 | 啟動(dòng)和停止服務(wù)

    Nginx是一個(gè)高性能的Web服務(wù)器,同時(shí)也是一個(gè)反向代理服務(wù)器。它最初是為了解決C10K問(wèn)題而開(kāi)發(fā)的,即如何讓一個(gè)服務(wù)器同時(shí)處理成千上萬(wàn)個(gè)并發(fā)連接。Nginx采用了事件驅(qū)動(dòng)的異步非阻塞處理方式,能夠高效地處理大量并發(fā)連接,因此被廣泛應(yīng)用于高并發(fā)的Web應(yīng)用場(chǎng)景中。 此

    2024年02月10日
    瀏覽(57)
  • 分布式 - 服務(wù)器Nginx:應(yīng)知應(yīng)會(huì)系列之Nginx簡(jiǎn)介 | 下載安裝 | 啟動(dòng)和停止服務(wù)

    分布式 - 服務(wù)器Nginx:應(yīng)知應(yīng)會(huì)系列之Nginx簡(jiǎn)介 | 下載安裝 | 啟動(dòng)和停止服務(wù)

    Nginx是一個(gè)高性能的Web服務(wù)器,同時(shí)也是一個(gè)反向代理服務(wù)器。它最初是為了解決C10K問(wèn)題而開(kāi)發(fā)的,即如何讓一個(gè)服務(wù)器同時(shí)處理成千上萬(wàn)個(gè)并發(fā)連接。Nginx采用了事件驅(qū)動(dòng)的異步非阻塞處理方式,能夠高效地處理大量并發(fā)連接,因此被廣泛應(yīng)用于高并發(fā)的Web應(yīng)用場(chǎng)景中。 此

    2024年02月11日
    瀏覽(59)
  • 分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx靜態(tài)資源配置優(yōu)化sendfile | tcp_nopush | tcp_nodelay

    分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx靜態(tài)資源配置優(yōu)化sendfile | tcp_nopush | tcp_nodelay

    1. sendfile 指令 請(qǐng)求靜態(tài)資源的過(guò)程:客戶端通過(guò)網(wǎng)絡(luò)接口向服務(wù)端發(fā)送請(qǐng)求,操作系統(tǒng)將這些客戶端的請(qǐng)求傳遞給服務(wù)器端應(yīng)用程序,服務(wù)器端應(yīng)用程序會(huì)處理這些請(qǐng)求,請(qǐng)求處理完成以后,操作系統(tǒng)還需要將處理得到的結(jié)果通過(guò)網(wǎng)絡(luò)適配器傳遞回去。 sendfile 指令是用于將

    2024年02月09日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包