您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Springboot+Nginx怎么做負(fù)載均衡”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Springboot+Nginx怎么做負(fù)載均衡”吧!
wiki
百度百科
簡(jiǎn)單來(lái)說(shuō)就是提升吞吐量、避免服務(wù)器過(guò)載。分為硬(如 F5),軟(如 apache、nginx 的反向代理,還有其他模式)
nginx 負(fù)載均衡使用 upstream
配置. 包括內(nèi)置策略,還有通過(guò)第三方插件方式的策略。有興趣的可以深入學(xué)習(xí)。
每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果服務(wù)器shutdown 了,將不在分發(fā)請(qǐng)求到該服務(wù)器。
servername 自定義名稱
server 配置支持 ip/域名 + 有端口/無(wú)端口(80) 。內(nèi)容根據(jù)實(shí)際配置
可配置 n 個(gè) server
upstream servername { server 192.168.0.1:8080; server 192.168.0.2:8080; }
通過(guò)權(quán)重,指定輪循的幾率。weight和訪問(wèn)比率成正比,多用于服務(wù)器性能有差異的情況。
servername 自定義名稱
server 配置支持 ip/域名 + 有端口/無(wú)端口(80) 。內(nèi)容根據(jù)實(shí)際配置
weight 與訪問(wèn)量成正比,數(shù)字越大輪循幾率越大
可配置 n 個(gè) server
upstream servername { server 192.168.0.1:8080 weight=8; server 192.168.0.2:8080 weight=10; }
每個(gè)請(qǐng)求按根據(jù)客戶端ip的hash結(jié)果分配服務(wù)器。這樣可以客戶端在一定時(shí)間內(nèi)可以固定訪問(wèn)一臺(tái)服務(wù)器,可以保持 Session 。 默認(rèn)執(zhí)行 20(忘記了)hash 算法查找服務(wù)器,如果沒(méi)有則進(jìn)行輪循(算是一種高級(jí)的輪循)。
servername 自定義名稱
server 配置支持 ip/域名 + 有端口/無(wú)端口(80) 。內(nèi)容根據(jù)實(shí)際配置
可配置 n 個(gè) server
upstream servername { ip_hash; server 192.168.0.1:8080; server 192.168.0.2:8080; }
down 表示當(dāng)前server 不參與負(fù)載
weight 默認(rèn)為1 數(shù)字越大 負(fù)載權(quán)重越大
max_fails 允許請(qǐng)求失敗的次數(shù) 當(dāng)超過(guò)最大次數(shù) 返回proxy_next_upstream模塊定義的錯(cuò)誤
fail_timeout:max_fails次失敗后,服務(wù)端暫停的時(shí)間
backup: 其他所有的非backup機(jī)器down或者忙的時(shí)候 請(qǐng)求這臺(tái)機(jī)器,這臺(tái)機(jī)器的壓力最小
upstream servername { server 192.168.0.1:8080 down; server 192.168.0.2:8080 weight=10 max_fails=30 fail_timeout=12; server 192.168.0.3:8080 weight=8; server 192.168.0.4:8080 backup; }
JDK1.8 以以上
Nginx 1.15 以上
測(cè)試包: https://github.com/liuqi0725/springboot-useful/tree/master/springboot-soft-balance-nginx
下載測(cè)試包 建議使用GitZip for github
插件下載獨(dú)立目錄
執(zhí)行 clean
、package
操作,將打包的 jar 和 application.yaml
放在一起
修改 application.yaml
端口地址.
啟動(dòng)多個(gè)服務(wù)
啟動(dòng)后在不同的客戶端機(jī)器上訪問(wèn) http://localhost/hello/username username 自定義 。測(cè)試負(fù)載均衡
使用反向代理負(fù)載均衡,不可避免會(huì)面對(duì) Session 共享。一般的方式是 cookie、memcache、redis 來(lái)管理共享數(shù)據(jù). 后面的 Springboot-security
專題,會(huì)專門講解。
配置采用的 ip_hash 。可以替換成其他的策略測(cè)試。
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream springbootnginx{ ip_hash; # 其實(shí) 2 個(gè)可以都在放本地,修改端口即可 # 本地放一個(gè) server 192.168.1.130:8080; # 其他機(jī)器放一個(gè) server 192.168.1.120:8080; } server { listen 80; server_name 192.168.1.130; location / { root html; # 指向反向代理 proxy_pass http://springbootnginx; proxy_connect_timeout 3s; proxy_read_timeout 5s; proxy_send_timeout 3s; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
到此,相信大家對(duì)“Springboot+Nginx怎么做負(fù)載均衡”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。