成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_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| 亚洲一区二区三区四区不卡| 欧美一级在线观看| 亚洲视频1区| av毛片久久久久**hd| 日韩精品成人一区二区在线| 久久久久久夜精品精品免费| 久久久亚洲人| 午夜精品剧场| 九九在线精品视频| 亚洲天堂a在线| 3d成人h动漫网站入口| 亚洲精品偷拍| www.性欧美| 麻豆国产欧美一区二区三区| 日韩一区在线看| 日韩三级中文字幕| 久久久亚洲一区| 在线看无码的免费网站| 国产91对白在线观看九色| 天堂精品中文字幕在线| 国产精品萝li| 精品国产一二三| 欧美日韩中文一区| 在线亚洲国产精品网站| 99久久精品一区二区| 美国毛片一区二区| 一二三四区精品视频| 久久久精品国产免费观看同学| 欧美专区亚洲专区| 久久av一区二区三区| 黄色精品网站| 99re成人在线| 国产精一区二区三区| 丝袜国产日韩另类美女| 亚洲人123区| 国产日韩高清在线| 91麻豆精品国产91久久久久久久久| 久久蜜桃精品| 99这里有精品| 好吊视频一区二区三区四区| 成人午夜免费视频| 激情文学综合插| 天天免费综合色| 亚洲精品伦理在线| 亚洲精品四区| 欧美日韩精品免费看 | 国内精品免费**视频| 性做久久久久久| 亚洲精品少妇30p| 亚洲欧洲国产专区| 国产亚洲精品久| 精品免费视频一区二区| 5858s免费视频成人| 欧美性videosxxxxx| 在线日韩一区二区| 夜色激情一区二区| 国产精品久久看| 中文一区一区三区高中清不卡| 欧美精品一区二区三区蜜臀| 日韩午夜在线观看| 91精品婷婷国产综合久久性色| 欧美天天综合网| 在线观看91视频| 日本道色综合久久| 在线一区二区三区四区| 久久久久在线| 91福利国产精品| 欧美性色黄大片| 欧美午夜不卡在线观看免费| 欧美日韩成人一区| 欧美精品久久久久久久多人混战| 欧美日韩综合在线| 91精品婷婷国产综合久久 | 国产精品卡一卡二卡三| 国产精品蜜臀av| 亚洲欧洲日韩一区二区三区| 成人欧美一区二区三区在线播放| 自拍偷拍亚洲综合| 一区二区三区av电影| 亚洲一区免费观看| 天堂在线一区二区| 国内一区二区视频| 丰满白嫩尤物一区二区| 91色视频在线| 最新亚洲一区| 久久久福利视频| 欧美午夜一区二区三区| 3d成人动漫网站| 精品成人免费观看| 亚洲国产精品v| 亚洲在线视频一区| 美女mm1313爽爽久久久蜜臀| 国产成人综合网站| 欧美激情亚洲| 国产精品久久久久久久久久妞妞| 亚洲中字在线| 欧美精品色一区二区三区| 日韩你懂的电影在线观看| 欧美韩日一区二区三区四区| 亚洲免费在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 国产在线精品一区二区夜色| 成人国产在线观看| 激情综合电影网| 久久精品九九| 欧美一区二区三区婷婷月色| 久久久五月婷婷| 亚洲影院久久精品| 狠狠色综合日日| 欧美1区视频| 激情综合一区二区三区| 成人久久18免费网站麻豆| 精品99视频| 在线一区二区三区四区| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲婷婷综合久久一本伊一区| 日韩电影在线免费观看| www.99精品| 国产精品日韩一区二区| 日韩午夜精品视频| 亚洲欧美偷拍卡通变态| 九九在线精品视频| 狠狠综合久久| 欧美日韩在线播放三区四区| 成人精品免费网站| 日韩视频一区| 欧美丰满嫩嫩电影| 中文字幕一区二区在线观看| 免费黄网站欧美| 色综合色狠狠天天综合色| 久久精品欧美| 国产亚洲精品7777| 欧美aⅴ一区二区三区视频| 99re这里只有精品6| 色视频成人在线观看免| 久久久久久亚洲综合影院红桃 | 91视频com| 在线一区二区三区| 中文字幕一区二区三区在线不卡| 精品一区二区三区在线播放视频 | 国产精品magnet| 欧美三级在线看| 亚洲人123区| 成人激情视频网站| 久久久精品动漫| 欧美国产欧美综合| 国产伦精品一区二区三区在线观看| 亚洲二区视频| 亚洲精品一区二区三区在线观看| 亚洲一区二区在线免费看| 成人精品高清在线| 91久久人澡人人添人人爽欧美| 国产调教视频一区| 激情成人午夜视频| 国产精品视频| 欧美激情一区二区在线| 国产一区二区h| 久久高清国产| 最新不卡av在线| av电影在线观看完整版一区二区| 欧美午夜片在线看| 一区二区三区91| 欧美精品播放| 欧美电影免费观看高清完整版在线 | 精品一区二区三区视频| 亚洲免费婷婷| 亚洲国产精品成人综合| 粉嫩在线一区二区三区视频| 欧美在线不卡视频| 亚洲国产婷婷综合在线精品| 欧美日韩国产高清| 日韩欧美国产一区在线观看| 人人精品人人爱| 国产精品亚洲产品| 中文字幕一区二区视频| 色综合天天综合在线视频| 日韩视频永久免费| 久久66热re国产| 久久一区亚洲| 亚洲国产色一区| 亚洲国内自拍| 中文字幕一区不卡| 亚洲高清免费观看| 国产日韩精品视频一区二区三区| 国产欧美综合在线| 99精品在线观看视频| 日韩一区二区三区电影| 韩国女主播一区| 在线观看免费视频综合| 午夜成人免费视频| 久久久精品动漫| 亚洲va欧美va天堂v国产综合| 亚洲激情一区| 综合欧美一区二区三区| 国产一区二区中文字幕免费看| 国产偷v国产偷v亚洲高清| 97精品久久久久中文字幕|