成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

nginx sticky實現(xiàn)基于cookie負載均衡示例詳解

瀏覽:335日期:2023-03-13 15:37:52
目錄
  • 前言
  • 思考
  • 1.cookie_jsessionid 負載均衡
    • 1.1 后端準備
    • 1.2 hash $cookie_jsessionid;配置
  • 2.nginx sticky 負載均衡
    • 2.1 下載 sticky
    • 2.2 重新編譯升級nginx
    • 2.3 upstream 配置 sticky
    • 2.4 修改后端不再創(chuàng)建session
    • 2.5 再次 多次請求
  • 3.sticky 其他用法
    • 總結(jié)

      前言

      sticky 是一個nginx的第三方模塊 它不在nginx發(fā)行版中 需要額外編譯這個模塊的, 它的思想就是不依靠后端生成cookie , 而是sticky在nginx這里生成cookie ,然后下發(fā)到客戶端, 客戶端收到cookie后 以后的請求帶著這個cookie 就會通過這個cookie 進行hash 被一直定位到后端的某一臺服務(wù)器了

      優(yōu)點:

      • 它比純 ip hash 負載有個優(yōu)點就是 純 ip hash 像局域網(wǎng)內(nèi)的訪問ip 訪問會導(dǎo)致ip傾斜
      • 它比 hash $cookie_jsessionid的優(yōu)點就是 它不依賴后端 不用后端生成 session 從而減少后端的 資源

      思考

      想想為什么要用這個 sticky 來把用戶盡量一直定位到一臺服務(wù)器呢? 在多臺后臺服務(wù)器的環(huán)境下,我們?yōu)榱舜_保一個客戶只和一臺服務(wù)器通信,我們勢必使用長連接。使用什么方式來實現(xiàn)這種連接呢,常見的有使用nginx自帶的ip_hash來做,我想這絕對不是一個好的辦法,如果前端是CDN,或者說一個局域網(wǎng)的客戶同時訪問服務(wù)器,導(dǎo)致出現(xiàn)服務(wù)器分配不均衡,以及不能保證每次訪問都粘滯在同一臺服務(wù)器。

      如果基于cookie會是一種什么情形,想想看, 每臺電腦都會有不同的cookie,在保持長連接的同時還保證了服務(wù)器的壓力均衡,nginx sticky值得推薦。

      如果瀏覽器不支持cookie,那么sticky不生效,畢竟整個模塊是給予cookie實現(xiàn)的.

      1.cookie_jsessionid 負載均衡

      在說sticky 之前先來看看 nginx 通過 cookie_jessionid 的負載均衡方式

      1.1 后端準備

      @Autowiredlateinit var env: Environment@GetMapping("/server")fun server(request:HttpServletRequest):String {  //獲取當(dāng)前服務(wù)的端口  val port = env.getProperty("local.server.port")  println("now port: $port")  //調(diào)用了request.getSession(true) 則會沒有session的時候創(chuàng)建session  val session = request.getSession(true)  val name = session.getAttribute("name")  println("name: $name")  if (name == null){    session.setAttribute("name","johnny")  }  return "success"}

      1.2 hash $cookie_jsessionid;配置

      在upstream 里面配置 hash 的方式 使用 cookie_jsessionid 去做hash

      #user  nobody;worker_processes  1;#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pidlogs/nginx.pid;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    sendfileon;    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  65;    #gzip  on;    upstream backend {# 指定hash 方式是 cookie_jessionid nginx自帶的方式hash $cookie_jsessionid;server 172.16.225.1:8081;			  server 172.16.225.1:8080;    }    server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {    # 指定負載到后端upstream	    			proxy_pass http://backend;  }error_page   500 502 503 504  /50x.html;location = /50x.html {    root   html;}    }}

      可以看到 服務(wù)器下發(fā)了 cookie JSESSIONID 并且多次請求這個 都不會改變 因為nginx 根據(jù) JSESSIONID 它進行hash 每次都負載到同一臺后端服務(wù)器, 因為這個后端服務(wù)器已經(jīng)存在了 這個session 所以不會再次創(chuàng)建

      可以看到 多次請求 都打到這個 8081 的后端服務(wù)了

      2.nginx sticky 負載均衡

      2.1 下載 sticky

      Bitbucket

      2.2 重新編譯升級nginx

      1)下載完成,放入服務(wù)器解壓,記住解壓的位置,后面要用

      2)進入到nginx的安裝文件

      3)配置nginx

      tar -xvf nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d.tar.gzmv nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d nginx-sticky# 添加sticky 模塊./configure \--prefix=/usr/local/nginx \--add-module=/opt/nginx-sticky

      make 編譯的時候有可能會報錯

      找到sticky剛剛的解壓目錄,進入修改文件 vim ngx_http_sticky_misc.c ,加入下面的頭文件

      #include <openssl/sha.h> #include <openssl/md5.h>

      再次make , 當(dāng)然后面如果還報錯的話,openssl檢查是否安裝

      apt-get install -y openssl 

      2.3 upstream 配置 sticky

      配置好后重啟nginx

        upstream backend {#hash $cookie_jsessionid;sticky; #指定使用 sticky 進行負載均衡server 172.16.225.1:8081;				server 172.16.225.1:8080; }

      2.4 修改后端不再創(chuàng)建session

      此時后端不會創(chuàng)建session 也不會下發(fā)cookie jsessionid 了

      @Autowiredlateinit var env: Environment@GetMapping("/server")fun server(request:HttpServletRequest):String {    val port = env.getProperty("local.server.port")    println("now port: $port")    return "success"}

      2.5 再次 多次請求

      可以看到stick 幫我們下發(fā)了 route 這個cookie , 并且這個不會變 默認關(guān)閉瀏覽器就會失效

      可以看到請求還是只會落在一臺服務(wù)器上

      3.sticky 其他用法

      sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback];

      name: 可以為任何的string字符,默認是route

      domain:哪些域名下可以使用這個cookie

      path:哪些路徑對啟用sticky,例如path/test,那么只有test這個目錄才會使用sticky做負載均衡

      expires:cookie過期時間,默認瀏覽器關(guān)閉就過期,也就是會話方式。

      no_fallbackup:如果設(shè)置了這個,cookie對應(yīng)的服務(wù)器宕機了,那么將會返回502(bad gateway 或者 proxy error),建議不啟用

      總結(jié)

      本篇主要介紹了 nginx sticky 負載均衡,它不需要后端去生成session 下發(fā)jsessionid 而是nginx的sticky模塊幫我們?nèi)ハ掳l(fā)一個 route 的 cookie , nginx 使用這個cookie 進行hash 負載, 從而實現(xiàn)了 客戶每次訪問都粘滯在同一臺服務(wù)器

      以上就是nginx sticky實現(xiàn)基于cookie負載均衡示例詳解的詳細內(nèi)容,更多關(guān)于nginx sticky cookie負載均衡的資料請關(guān)注其它相關(guān)文章!

      標簽: Nginx
      成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
      91丨porny丨首页| 91久久精品网| 99精品一区二区三区| 美女一区二区久久| 韩国三级电影一区二区| 欧美精品一区在线| 欧美一区二区免费视频| 国产一区二区你懂的| 久久综合99re88久久爱| 开心九九激情九九欧美日韩精美视频电影| 亚洲片区在线| 国产欧美一区二区三区沐欲 | 欧美日韩免费电影| 亚洲一二三区在线观看| 欧美视频1区| 2023国产一二三区日本精品2022| 美女看a上一区| 亚洲综合二区| 亚洲欧美日韩一区二区| 欧美精品免费观看二区| 欧美成人国产一区二区| 久久成人免费网站| 色猫猫国产区一区二在线视频| 亚洲老妇xxxxxx| av不卡免费在线观看| 欧美日本在线视频| 一区二区三区不卡在线观看 | 久久狠狠亚洲综合| 久久av最新网址| 亚洲综合色成人| 91久久视频| 亚洲色图一区二区| 一区久久精品| 中文字幕一区二区三区在线播放 | 免费人成在线不卡| 亚洲欧美不卡| 亚洲午夜久久久| 亚洲一区二区三区涩| 亚洲素人一区二区| 亚洲国产专区校园欧美| 日韩美女精品在线| 精品1区2区| 中文字幕佐山爱一区二区免费| 国产精品大片免费观看| 久久久亚洲精品一区二区三区 | 樱花影视一区二区| 亚洲第一黄网| 亚洲精品成人精品456| 亚洲国产片色| 一区二区三区欧美| 99国产精品视频免费观看一公开| 一区在线中文字幕| 久久99蜜桃精品| 欧美日韩一区二区三区不卡| 久久国产精品色| 777色狠狠一区二区三区| 国产精品系列在线观看| 91精品国产综合久久精品麻豆 | 在线观看一区不卡| 视频一区欧美精品| 欧洲av一区二区嗯嗯嗯啊| 久久精品国产999大香线蕉| 欧美精品视频www在线观看 | 欧美特黄视频| 成人欧美一区二区三区1314| 亚洲日本欧美| 亚洲成a人在线观看| 在线看日韩精品电影| 国产麻豆精品一区二区| 亚洲精品在线电影| 国内精品久久久久久久97牛牛 | 午夜在线一区| 日韩电影免费在线观看网站| 在线观看不卡一区| 久久99精品国产麻豆不卡| 欧美一区二区三区四区五区 | 成人avav在线| 日本一区二区动态图| 夜夜嗨网站十八久久| 丝袜国产日韩另类美女| 在线视频中文字幕一区二区| 国产一区欧美二区| 久久九九99视频| 99在线热播精品免费99热| 日韩中文字幕不卡| 制服丝袜av成人在线看| 国产.欧美.日韩| 日本一区二区三区高清不卡| 一区二区国产日产| 亚洲成a人v欧美综合天堂| 欧美在线短视频| 亚洲色图制服诱惑 | 欧美午夜不卡视频| 成人免费电影视频| 中文字幕av资源一区| 一区二区三区四区五区精品视频| 亚洲第一成人在线| 欧美日本视频在线| 欧美成人午夜| 亚洲精品成人a在线观看| 在线亚洲免费视频| 成人av在线观| 亚洲欧美日韩系列| 欧美日韩你懂得| 欧美久久99| 日韩在线a电影| 欧美va在线播放| 一级日韩一区在线观看| 国产在线日韩欧美| 国产精品素人视频| 久久久久中文| 不卡av在线网| 一区二区三区在线观看国产| 欧美日韩黄视频| 99re这里只有精品首页| 亚洲综合色视频| 欧美丰满少妇xxxxx高潮对白| 欧美在线免费| 亚洲一区中文日韩| 日韩精品中午字幕| 午夜精品视频在线观看一区二区| 午夜天堂影视香蕉久久| 日韩丝袜情趣美女图片| 美女视频黄 久久| 综合欧美一区二区三区| 精品免费日韩av| 色999日韩国产欧美一区二区| 国内精品久久国产| 成人国产精品视频| 精品一区二区三区欧美| 亚洲精品视频在线| 欧美mv日韩mv国产网站app| 色婷婷综合久久久久中文| 亚洲视频大全| 国产精品地址| 91视频xxxx| 国产不卡视频一区| 久久av中文字幕片| 五月综合激情网| 亚洲一线二线三线视频| 中文字幕一区二区三区在线观看| 精品久久五月天| 欧美一区二区三区免费视频| 欧美伊人久久久久久久久影院| 国产精品欧美日韩一区| 国产精品v一区二区三区| av资源网一区| 国产成人午夜99999| 久久99精品久久久久久国产越南| 午夜精品福利久久久| 亚洲欧美日韩人成在线播放| 中文成人综合网| 国产日韩欧美不卡| 久久奇米777| 精品99999| 日韩免费一区二区三区在线播放| 欧美人妇做爰xxxⅹ性高电影| 看欧美日韩国产| 久久久久一区| 久久久久久亚洲精品不卡4k岛国| 一区二区欧美日韩| 亚洲精品美女91| 精品999日本| 黄色亚洲大片免费在线观看| 欧美日韩岛国| 狠狠久久综合婷婷不卡| 欧美性事免费在线观看| 91猫先生在线| 91小视频免费观看| 99riav久久精品riav| 91在线看国产| 欧美成熟视频| 午夜精品久久久久99热蜜桃导演| 你懂的视频一区二区| 欧美黄在线观看| 欧美日韩99| 黄色工厂这里只有精品| 亚洲第一网站| 中日韩男男gay无套| 亚洲中字在线| 色国产综合视频| 欧美视频完全免费看| 3atv一区二区三区| 精品卡一卡二卡三卡四在线| 337p粉嫩大胆色噜噜噜噜亚洲| 久久噜噜亚洲综合| 欧美国产成人精品| 亚洲三级在线播放| 亚洲图片欧美一区| 日本欧美加勒比视频| 久久99精品久久只有精品| 国产精品一线二线三线精华| 不卡视频免费播放| 国产精品xnxxcom| 国产欧美短视频| 色婷婷综合久色| 欧美老肥妇做.爰bbww视频| 日韩免费视频线观看| 国产日韩欧美高清在线| 亚洲人成7777|