日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

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

      前言

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

      優(yōu)點(diǎn):

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

      思考

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

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

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

      1.cookie_jsessionid 負(fù)載均衡

      在說(shuō)sticky 之前先來(lái)看看 nginx 通過(guò) cookie_jessionid 的負(fù)載均衡方式

      1.1 后端準(zhǔn)備

      @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) 則會(huì)沒(méi)有session的時(shí)候創(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 / {    # 指定負(fù)載到后端upstream	    			proxy_pass http://backend;  }error_page   500 502 503 504  /50x.html;location = /50x.html {    root   html;}    }}

      可以看到 服務(wù)器下發(fā)了 cookie JSESSIONID 并且多次請(qǐng)求這個(gè) 都不會(huì)改變 因?yàn)閚ginx 根據(jù) JSESSIONID 它進(jìn)行hash 每次都負(fù)載到同一臺(tái)后端服務(wù)器, 因?yàn)檫@個(gè)后端服務(wù)器已經(jīng)存在了 這個(gè)session 所以不會(huì)再次創(chuàng)建

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

      2.nginx sticky 負(fù)載均衡

      2.1 下載 sticky

      Bitbucket

      2.2 重新編譯升級(jí)nginx

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

      2)進(jìn)入到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 編譯的時(shí)候有可能會(huì)報(bào)錯(cuò)

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

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

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

      apt-get install -y openssl 

      2.3 upstream 配置 sticky

      配置好后重啟nginx

        upstream backend {#hash $cookie_jsessionid;sticky; #指定使用 sticky 進(jìn)行負(fù)載均衡server 172.16.225.1:8081;				server 172.16.225.1:8080; }

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

      此時(shí)后端不會(huì)創(chuàng)建session 也不會(huì)下發(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 再次 多次請(qǐng)求

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

      可以看到請(qǐng)求還是只會(huì)落在一臺(tái)服務(wù)器上

      3.sticky 其他用法

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

      name: 可以為任何的string字符,默認(rèn)是route

      domain:哪些域名下可以使用這個(gè)cookie

      path:哪些路徑對(duì)啟用sticky,例如path/test,那么只有test這個(gè)目錄才會(huì)使用sticky做負(fù)載均衡

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

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

      總結(jié)

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

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

      標(biāo)簽: Nginx
      日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
      久久蜜桃资源一区二区老牛| 国产suv精品一区| 久久av在线| 亚洲精选av| 国产精品免费不| 蜜臀久久99精品久久久久久9| 国产日韩欧美中文在线| 日本一区二区三区视频在线看| 伊人精品久久| 日韩一区二区三区在线看| 亚洲欧美一级| 日韩国产高清在线| 国产伦理久久久久久妇女| 国产美女久久| 久久中文字幕一区二区| 欧美在线黄色| 欧美日一区二区在线观看| 国产欧美日韩在线一区二区 | 亚洲精品精选| 热久久久久久| 久久精品三级| 日韩中文首页| 一区在线观看| 日韩三级精品| 欧美精品aa| 精品久久久网| 在线中文字幕播放| 亚洲国产专区| 免费人成在线不卡| 91麻豆精品激情在线观看最新| 欧美另类中文字幕| 国产高清日韩| 久草免费在线视频| 午夜欧美理论片| 免费人成黄页网站在线一区二区 | 婷婷丁香综合| 蜜臀久久99精品久久久久久9| 日本aⅴ亚洲精品中文乱码 | 国产精品美女午夜爽爽| 国产精品观看| 在线日韩一区| 日精品一区二区三区| 欧美黑人做爰爽爽爽| 99视频精品全国免费| 综合一区在线| 97人人精品| 久久福利一区| 久久xxx视频| 精品欧美激情在线观看| 日韩精品第一| 成人va天堂| 日韩精品亚洲aⅴ在线影院| 国内揄拍国内精品久久| 不卡视频在线| 亚洲狼人精品一区二区三区| 国产极品模特精品一二| 亚洲电影有码| 色狠狠一区二区三区| av中文资源在线资源免费观看| 99在线精品视频在线观看| 国产精品亲子伦av一区二区三区 | 亚洲三级在线| 国产精品精品| 亚洲影院天堂中文av色| 97精品一区| 亚洲乱码久久| 麻豆视频观看网址久久| 亚洲精品1区| 国产精品国码视频| 九一精品国产| 韩日一区二区| 亚洲乱码视频| 久久人人88| 麻豆精品视频在线观看| 国产精品嫩草99av在线| 国产一区2区在线观看| 亚洲欧美视频一区二区三区| 丰满少妇一区| 日韩精选在线| 亚洲成人精选| 国产一区2区| 综合欧美亚洲| 日韩午夜在线| av高清不卡| 日韩大片在线播放| 日本亚洲欧洲无免费码在线| 99re国产精品| 黄色亚洲免费| 自拍日韩欧美| 国产二区精品| 在线一区电影| 亚洲少妇诱惑| 午夜精品免费| 最新亚洲一区| 亚洲一区免费| 免费观看在线综合| 在线观看免费一区二区| av一区二区高清| 欧美日韩视频一区二区三区| 欧美成人日韩| 精品一区毛片| 婷婷色综合网| 欧美.日韩.国产.一区.二区 | 色一区二区三区| 久久久久久夜| 欧美亚洲日本精品| 日本久久成人网| 久久精品国产68国产精品亚洲| 久久久9色精品国产一区二区三区| 中文字幕一区久| 亚洲精品.com| 国内亚洲精品| 亚洲精品一区二区在线看| 日韩视频二区| 丝袜美腿成人在线| 日韩激情av在线| 国产午夜一区| 国产成人精品一区二区三区在线| 98精品视频| 国产高清久久| 综合色一区二区| 日本特黄久久久高潮| 国产欧美日韩亚洲一区二区三区| 麻豆成人综合网| av一区在线| 婷婷精品视频| 日韩高清成人| 色爱综合网欧美| 色婷婷色综合| 日韩一区二区三区免费播放| 国产69精品久久| 精品国产乱码久久久久久1区2匹| 国产乱码精品| 国产精品毛片久久久| 麻豆久久久久久久| 国产一区二区三区免费在线| 国产+成+人+亚洲欧洲在线| 成人国产综合| 日韩在线免费| 欧美成人亚洲| 亚洲精品99| 伊人久久亚洲| 欧美亚洲三级| 久久字幕精品一区| 97精品国产福利一区二区三区| 国产白浆在线免费观看| 亚洲爱爱视频| 视频一区日韩精品| 欧美a级一区二区| 欧美影院三区| 91成人精品观看| 国产精品久久久久久久久久10秀 | 婷婷精品在线| 国产一区2区| 在线视频精品| 欧美精品第一区| 黄色成人精品网站| 麻豆精品99| 丝袜美腿一区二区三区| 精品中文字幕一区二区三区四区| 亚洲精品91| 久久字幕精品一区| 国产精品毛片在线| 精品一区视频| 欧美日韩国产一区二区三区不卡| 欧美一区二区三区免费看| 色黄视频在线观看| 日韩精品五月天| 久久国产小视频| 日韩激情一区二区| 久久精品中文| 国产精品三级| 伊人久久亚洲热| 国产一区二区三区四区| 香蕉久久久久久久av网站| 欧美国产另类| 在线视频亚洲| 91一区二区| 欧美久久亚洲| 欧美亚洲激情| 精品亚洲自拍| 亚洲精品观看| 激情综合网站| 欧美国产美女| 久久精品 人人爱| 午夜亚洲精品| 四虎4545www国产精品| 国产精品调教| 免费不卡在线观看| 亚洲福利免费| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 日韩国产一区二区| 国产情侣久久| 亚洲免费专区| 国产婷婷精品| 亚洲成人一区在线观看| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 午夜性色一区二区三区免费视频| 999国产精品永久免费视频app| 久久精品亚洲|