日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Nginx实现负载均衡(整合SpringBoot小demo)

發布時間:2024/9/30 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx实现负载均衡(整合SpringBoot小demo) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 1.前言
  • 2.什么是負載均衡
  • 3.準備工作
    • 3.1 關于Mac系統安裝Nginx
    • 3.2 測試項目說明
  • 4.Nginx負載均衡的集中方式介紹
    • 4.1 輪詢
    • 4.2 權重
    • 4.3 iphash
    • 4.4 最少連接
    • 4.5 fair(第三方)
    • 4.6 url_hash(第三方)
  • 5.測試(以輪詢為例子)
  • 測試SpringBoot項目地址

1.前言

要理解負載均衡,必須先搞清楚正向代理和反向代理。

注:
正向代理,代理的是用戶。
反向代理,代理的是服務器。

2.什么是負載均衡

當一臺服務器的單位時間內的訪問量越大時,服務器壓力就越大,大到超過自身承受能力時,服務器就會崩潰。為了避免服務器崩潰,讓用戶有更好的體驗,我們通過負載均衡的方式來分擔服務器壓力。
我們可以建立很多很多服務器,組成一個服務器集群,當用戶訪問網站時,先訪問一個中間服務器,在讓這個中間服務器在服務器集群中選擇一個壓力較小的服務器,然后將該訪問請求引入該服務器。如此以來,用戶的每次訪問,都會保證服務器集群中的每個服務器壓力趨于平衡,分擔了服務器壓力,避免了服務器崩潰的情況。

負載均衡是用反向代理的原理實現的。

3.準備工作

結合本文場景,需要安裝Nginx和Java環境(運行SpringBoot項目)

3.1 關于Mac系統安裝Nginx

本次用的是 homebrew 安裝的

大家也可前去官網下載

3.2 測試項目說明

由于只是測試, SpringBoot只是映射了根路徑,端口分別是 10001 和 10002 ,分別返回 demo1 和 demo2 字符串作為區分。

4.Nginx負載均衡的集中方式介紹

4.1 輪詢

輪詢方式是Nginx負載默認的方式,顧名思義,所有請求都按照時間順序分配到不同的服務上,如果服務Down掉,可以自動剔除,如下配置后輪訓10001服務和10002服務。

upstream codingce-nginx {server localhost:10001;server localhost:10002; }

4.2 權重

指定每個服務的權重比例,weight和訪問比率成正比,通常用于后端服務機器性能不統一,將性能好的分配權重高來發揮服務器最大性能,如下配置后10002服務的訪問比率會是10001服務的二倍。

upstream codingce-nginx {server localhost:10001 weight=1;server localhost:10002 weight=2; }

4.3 iphash

每個請求都根據訪問ip的hash結果分配,經過這樣的處理,每個訪客固定訪問一個后端服務,如下配置(ip_hash可以和weight配合使用)。

upstream codingce-nginx {ip_hash; server localhost:10001 weight=1;server localhost:10002 weight=2; }

4.4 最少連接

將請求分配到連接數最少的服務上。

upstream codingce-nginx {least_conn;server localhost:10001 weight=1;server localhost:10002 weight=2; }

4.5 fair(第三方)

按后端服務器的響應時間來分配請求,響應時間短的優先分配。

upstream codingce-nginx {server localhost:10001 weight=1;server localhost:10002 weight=2;fair; }

4.6 url_hash(第三方)

按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效。

upstream codingce-nginx {server localhost:10001;server localhost:10002;hash $request_uri;hash_method crc32; }

5.測試(以輪詢為例子)

訪問http://localhost:10000

輪詢方式,刷新后依次切換后端服務

如果要修改負載均衡算法修改對應upstream模塊即可。

此次nginx路徑展示

主配置與自定義配置

注意:下方自定義配置文件是自定義配置文件目錄 vhost/

輪詢配置 在nginx.conf文件中配置的

upstream codingce-nginx {server localhost:10001;server localhost:10002; }

進入自定義配置文件夾配置自定義配置

williamma@WilliamdeMacBook-Pro nginx % cd vhost williamma@WilliamdeMacBook-Pro vhost % ll total 16 drwxr-xr-x 4 williamma admin 128 5 13 15:17 ./ drwxr-xr-x 19 williamma admin 608 5 13 15:28 ../ -rw-r--r-- 1 williamma admin 549 4 16 16:17 gulimall.conf -rw-r--r-- 1 williamma admin 167 5 13 15:17 mytest.conf williamma@WilliamdeMacBook-Pro vhost % vim mytest.conf

配置文件展示

server {listen 10000;server_name localhost;location / {#用在此處proxy_pass http://codingce-nginx;proxy_redirect default;}}

測試SpringBoot項目地址

[Github]:https://github.com/xzMhehe/codingce-java

[Gitee]:https://gitee.com/codingce/codingce-java

如有問題歡迎評論區討論

總結

以上是生活随笔為你收集整理的Nginx实现负载均衡(整合SpringBoot小demo)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。