您好,登錄后才能下訂單哦!
本篇內容主要講解“Springboot+Nginx怎么做負載均衡”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Springboot+Nginx怎么做負載均衡”吧!
wiki
百度百科
簡單來說就是提升吞吐量、避免服務器過載。分為硬(如 F5),軟(如 apache、nginx 的反向代理,還有其他模式)
nginx 負載均衡使用 upstream
配置. 包括內置策略,還有通過第三方插件方式的策略。有興趣的可以深入學習。
每個請求按時間順序逐一分配到不同的后端服務器,如果服務器shutdown 了,將不在分發請求到該服務器。
servername 自定義名稱
server 配置支持 ip/域名 + 有端口/無端口(80) 。內容根據實際配置
可配置 n 個 server
upstream servername { server 192.168.0.1:8080; server 192.168.0.2:8080; }
通過權重,指定輪循的幾率。weight和訪問比率成正比,多用于服務器性能有差異的情況。
servername 自定義名稱
server 配置支持 ip/域名 + 有端口/無端口(80) 。內容根據實際配置
weight 與訪問量成正比,數字越大輪循幾率越大
可配置 n 個 server
upstream servername { server 192.168.0.1:8080 weight=8; server 192.168.0.2:8080 weight=10; }
每個請求按根據客戶端ip的hash結果分配服務器。這樣可以客戶端在一定時間內可以固定訪問一臺服務器,可以保持 Session 。 默認執行 20(忘記了)hash 算法查找服務器,如果沒有則進行輪循(算是一種高級的輪循)。
servername 自定義名稱
server 配置支持 ip/域名 + 有端口/無端口(80) 。內容根據實際配置
可配置 n 個 server
upstream servername { ip_hash; server 192.168.0.1:8080; server 192.168.0.2:8080; }
down 表示當前server 不參與負載
weight 默認為1 數字越大 負載權重越大
max_fails 允許請求失敗的次數 當超過最大次數 返回proxy_next_upstream模塊定義的錯誤
fail_timeout:max_fails次失敗后,服務端暫停的時間
backup: 其他所有的非backup機器down或者忙的時候 請求這臺機器,這臺機器的壓力最小
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 以上
測試包: https://github.com/liuqi0725/springboot-useful/tree/master/springboot-soft-balance-nginx
下載測試包 建議使用GitZip for github
插件下載獨立目錄
執行 clean
、package
操作,將打包的 jar 和 application.yaml
放在一起
修改 application.yaml
端口地址.
啟動多個服務
啟動后在不同的客戶端機器上訪問 http://localhost/hello/username username 自定義 。測試負載均衡
使用反向代理負載均衡,不可避免會面對 Session 共享。一般的方式是 cookie、memcache、redis 來管理共享數據. 后面的 Springboot-security
專題,會專門講解。
配置采用的 ip_hash 。可以替換成其他的策略測試。
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; # 其實 2 個可以都在放本地,修改端口即可 # 本地放一個 server 192.168.1.130:8080; # 其他機器放一個 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; } } }
到此,相信大家對“Springboot+Nginx怎么做負載均衡”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。