成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_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玉足脚交白嫩脚丫在线播放| 欧美日韩一区二区三区在线观看免 | 欧美一二三区在线| 国产精品日韩一区二区| 激情av一区| 91麻豆免费在线观看| 成人毛片视频在线观看| 国产在线不卡一区| 美女视频黄频大全不卡视频在线播放 | 国产91精品精华液一区二区三区| 卡一卡二国产精品| 奇米色777欧美一区二区| 五月婷婷综合在线| 日产国产高清一区二区三区| 亚洲国产一区二区视频| 亚洲地区一二三色| 水野朝阳av一区二区三区| 亚洲精品高清在线| 亚洲国产精品一区二区www| 亚洲综合激情网| 亚洲国产成人va在线观看天堂| 亚洲欧美国产77777| 亚洲国产精品欧美一二99| 午夜视频一区二区三区| 秋霞电影网一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 国产一区二区精品久久99| 国产精品中文欧美| 欧美成人69av| 亚洲精品色图| 亚洲一区精品视频| 欧美日韩一区三区| 日韩欧美亚洲一区二区| 国产亚洲欧美日韩在线一区| 中文字幕电影一区| 亚洲国产aⅴ成人精品无吗| 婷婷综合五月天| 狠狠久久亚洲欧美| 99riav一区二区三区| 亚洲激情影院| 91高清在线观看| 日韩美女在线视频| 中文字幕一区二区不卡| 亚洲va欧美va天堂v国产综合| 久久福利视频一区二区| www.日本不卡| 一区二区三区福利| 欧美肥胖老妇做爰| 亚洲国产高清在线| 美女在线视频一区| 不卡一区二区中文字幕| 亚洲精品麻豆| 欧美久久久久中文字幕| 国产精品久久久久久一区二区三区| 亚洲一区日韩精品中文字幕| 韩国女主播成人在线| 国产精品第十页| 在线亚洲高清视频| 国产亚洲一本大道中文在线| 天堂蜜桃一区二区三区| 成人aaaa免费全部观看| 亚洲免费网址| 精品国产123| 日韩和欧美一区二区| 91浏览器打开| 久久久久一区二区| 国产精品人妖ts系列视频 | 国产精品99久| 成人免费毛片aaaaa**| 亚洲一区二区三区在线观看视频| 精品国产乱码久久久久久图片| 亚洲在线免费播放| 不卡av在线网| 玖玖国产精品视频| 中文字幕一区二区三区乱码在线| 国产精品99久久不卡二区| 国产午夜精品一区二区三区欧美| 欧美一二三四区在线| 五月婷婷久久综合| 亚洲视频欧美在线| 精品久久久久久无| 美脚の诱脚舐め脚责91 | 欧美色网站导航| 日韩一区二区三| 日韩极品在线观看| 99精品免费| 国产人成亚洲第一网站在线播放| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品美女xx| 国产精品传媒在线| 91影视在线播放| 日韩欧美一级特黄在线播放| 蜜臀av性久久久久蜜臀aⅴ | 欧美日韩一区二区三| 精品久久一区二区三区| 久久福利视频一区二区| 久久一日本道色综合久久| 亚洲天堂免费看| 欧美久久视频| 精品国产髙清在线看国产毛片| 精品一区二区三区日韩| 色成年激情久久综合| 亚洲一区二区三区四区五区中文| 激情成人综合| 亚洲欧洲www| 午夜欧美精品| 国产香蕉久久精品综合网| 99热在这里有精品免费| 精品粉嫩超白一线天av| 成人影视亚洲图片在线| 日韩一区国产二区欧美三区| 国产麻豆午夜三级精品| 69成人精品免费视频| 经典三级一区二区| 欧美精品久久99久久在免费线 | 欧美大片顶级少妇| 日韩有码一区二区三区| 久久不射中文字幕| 天天综合天天综合色| 91国产视频在线观看| 九九九精品视频| 91精品国产综合久久久久久久久久| 精品伊人久久久久7777人| 777xxx欧美| 97精品超碰一区二区三区| 久久久久国色av免费看影院| 91亚洲精品久久久蜜桃| 国产精品入口麻豆原神| 最新国产拍偷乱拍精品| 一区二区久久久久久| 91黄色激情网站| 国产福利精品导航| 久久久久9999亚洲精品| 韩国亚洲精品| 一区二区三区中文免费| 色94色欧美sute亚洲线路二 | 国产综合欧美在线看| 久久午夜电影网| 午夜久久一区| 亚洲国产wwwccc36天堂| 欧美高清精品3d| 99视频有精品| 夜夜精品浪潮av一区二区三区| 老司机精品导航| 国产成人免费在线观看| 国产欧美精品一区二区色综合朱莉| 亚洲国产精选| 另类中文字幕网| 久久先锋影音av| 国产精品美女久久久久av爽李琼| 中文日韩欧美| 国产精品一区二区在线观看不卡| 国产欧美日韩视频一区二区| 国产精品最新自拍| 激情欧美一区二区| 国产精品福利一区| 在线一区二区三区四区五区| 99久久精品国产一区二区三区| 亚洲精品五月天| 欧美麻豆精品久久久久久| 影音先锋中文字幕一区二区| 日韩和欧美的一区| 国产精品看片你懂得| 久久一区中文字幕| 欧美一区二区三区另类| 日韩电影在线免费| 日本一区二区三区国色天香| 在线观看视频一区二区| 欧美1区2区| 精品系列免费在线观看| 亚洲丝袜另类动漫二区| 激情久久五月天| 亚洲欧美日韩电影| 日韩精品一区二区三区视频| 亚洲欧美国产精品桃花| 99久久精品国产毛片| 老司机免费视频一区二区| 国产精品传媒在线| 欧美成人女星排名| 91成人看片片| 亚洲另类视频| 99久久免费精品| 国产在线看一区| 亚洲精品国产成人久久av盗摄| 久久午夜电影网| 91精品国产色综合久久不卡电影 | 久久精品综合网| 欧美视频在线一区二区三区| 夜夜嗨av一区二区三区网站四季av| 成人少妇影院yyyy| 久久成人免费电影| 亚洲电影一区二区| 亚洲欧美日韩久久| 国产人成一区二区三区影院| 日韩欧美国产综合一区| 精品视频全国免费看| 久久一区二区三区超碰国产精品| aa亚洲婷婷| 在线观看成人av| 欧美日韩一区在线观看视频|