成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Nginx sticky模塊實現基于cookie的負載均衡

開發 前端
在多臺后臺服務器的環境下,我們為了確保一個客戶只和一臺服務器通信,我們勢必使用長連接。使用什么方式來實現這種連接呢,常見的有使用Nginx 自帶的ip_hash來做,我想這絕對不是一個好的辦法,如果前端是CDN,或者說一個局域網的客戶同時訪問服務器,導致出現服務器分配不均衡,以及不能 保證每次訪問都粘滯在同一臺服務器。

在多臺后臺服務器的環境下,我們為了確保一個客戶只和一臺服務器通信,我們勢必使用長連接。使用什么方式來實現這種連接呢,常見的有使用Nginx 自帶的ip_hash來做,我想這絕對不是一個好的辦法,如果前端是CDN,或者說一個局域網的客戶同時訪問服務器,導致出現服務器分配不均衡,以及不能 保證每次訪問都粘滯在同一臺服務器。如果基于cookie會是一種什么情形,想想看, 每臺電腦都會有不同的cookie,在保持長連接的同時還保證了服務器的壓力均衡,Nginx sticky值得推薦。

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

1、Nginx sticky 模塊工作流程圖

nginx sticky 
Nginx sticky

2、下載安裝nginx sticky

下載地址:http://code.google.com/p/nginx-sticky-module/downloads/list
目前共有2個版本,一個是1.0,一個是1.1,1.0已經壽終正寢了.1.1增加了權重的參數.

安裝Nginx + sticky模塊

  1. # wget http://nginx-sticky-module.googlecode.com/files/nginx-sticky-module-1.1.tar.gz  
  2. # tar -xzvf nginx-sticky-module-1.1.tar.gz  
  3.  
  4. # wget http://nginx.org/download/nginx-1.0.6.tar.gz  
  5. # tar -czvf nginx-1.0.6 
  6. # cd nginx-1.0.6 
  7. # ./configure --prefix=/usr/local/nginx-1.0.6 --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=../nginx-sticky-module-1.1 
  8. # make  
  9. # make install 

3、配置Nginx sticky

nginx 的upstream使用sticky,如下

  1. upstream cluster_test {  
  2.      sticky;  
  3.      server 192.168.100.209:80;  
  4.      server 192.168.100.225:80;  

配置虛擬主機(以下有配置的可以忽略掉)

  1. server {  
  2.         listen        80;  
  3.         server_name     test.ttlsa.com;  
  4.         index index.jsp;  
  5.  
  6.         access_log /data/logs/nginx/test.ttlsa.com_access.log main;  
  7.  
  8.         set $proxy_pass cluster_test;  
  9.  
  10.         location /  
  11.         {  
  12.                 proxy_pass http://$proxy_pass;  
  13.                 include proxy.conf;  
  14.                 add_header Cache-Control no-store;  
  15.         }  
  16.  

備注:

Nginx和Apache不同,Nginx每次安裝一個新的模塊都需要重新編譯一次,編譯完成之后將Nginx這一個文件拷貝到sbin下面即可.我這邊 全新安裝一次,因為公司在兩年前就選擇了這個Nginx版本,也沒打算去換,所以大家可以把Nginx換成自己最合適的一個版本,不用完全跟著文章來安 裝。

4、重啟Nginx

  1. /usr/local/nginx-1.0.6/sbin/nginx -t  
  2. /usr/local/nginx-1.0.6/sbin/nginx -s reload 

#p#

5、測試Nginx sticky

我 后端是兩臺tomcat服務器,每臺服務器的JESSIONED值都有特殊的標志。比如209這臺是s209,225這臺是s225.打開頁面,不管怎么 刷新JESSIONED值都是不變.但是如果開啟了sticky,可以看到JESSIONED值不會發生變化.死死的粘滯在其中一臺服務器上.測試圖如 下:

使用sticky的情況下,不管怎么刷新都是下面圖

nginx sticky 模塊 
Nginx sticky 模塊

不使用Nginx sticky模塊,多刷幾次就變了(有時候刷一次,有時候多刷幾次,看概率,不過肯定會變),如下圖

nginx sticky 模塊 
Nginx sticky 模塊

備注:每臺后端真實服務器都會有一個唯一的route值,所以不管你真實服務器前端有幾個裝了sticky的nginx代理,他都是不會變化的. 這個cookie是會話方式的,所以你瀏覽器關閉了,服務器會給你重新分配一臺服務器。

6、Nginx sticky其他語法

  1. sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback];  
  2. name: 可以為任何的string字符,默認是route  
  3. domain:哪些域名下可以使用這個cookie  
  4. path:哪些路徑對啟用sticky,例如path/test,那么只有test這個目錄才會使用sticky做負載均衡  
  5. expires:cookie過期時間,默認瀏覽器關閉就過期,也就是會話方式。  
  6. no_fallbackup:如果設置了這個,cookie對應的服務器宕機了,那么將會返回502(bad gateway 或者 proxy error),建議不啟用 

7、Nginx sticky expires用法

  1. upstream cluster_test {  
  2.      sticky expires=1h;  
  3.      server 192.168.100.209:80;  
  4.      server 192.168.100.225:80;  

啟用了過期,cookie如下截圖,cookie1個小時才過期

nginx sticky expire用法

Nginx sticky expire用法

如下是不啟用過期

nginx sticky 不啟用expire

Nginx sticky 不啟用expire

8、Nginx sticky使用注意事項

Nginx sticky模塊不能與ip_hash同時使用

官方文檔:http://code.google.com/p/nginx-sticky-module/wiki/Documentation

淘寶sticky:http://tengine.taobao.org/document_cn/http_upstream_session_sticky_cn.html(謝謝shudu)

原文鏈接:http://www.ttlsa.com/html/1895.html

責任編輯:林師授 來源: 運維生存時間
相關推薦

2018-02-01 10:31:12

Nginx負載均衡軟件

2020-01-14 09:40:00

Nginx負載均衡正向代理

2011-01-07 11:14:17

Nginx負載均衡負載均衡

2020-04-20 20:27:59

Nginx動靜分離負載均衡

2019-09-12 14:47:31

TCPUDP端口

2012-07-31 09:25:42

nginx負載均衡反向代理

2013-04-22 11:29:14

Nginx

2019-03-13 12:04:41

Nginx負載均衡動靜分離

2023-12-07 12:29:49

Nginx負載均衡策略

2010-05-07 12:23:23

nginx負載均衡

2025-01-13 09:07:12

2019-11-12 13:56:15

NginxTomcat負載均衡

2011-12-02 22:51:46

Nginx負載均衡

2015-04-13 09:44:14

Nginxkeepalived負載均衡

2010-05-05 22:40:21

apache服務器負載均衡

2010-05-10 14:17:46

負載均衡技術

2012-02-14 10:10:35

NginxKeepalived負載均衡

2016-01-08 10:53:48

DNS負載均衡跨云應用

2021-03-01 06:15:53

nginx

2013-02-20 09:59:49

負載均衡PuppetNginx
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产777在线观看 | 久久99精品久久久久久国产越南 | 精品国产免费人成在线观看 | av免费网站在线观看 | 精品国产一区二区国模嫣然 | 久草在线在线精品观看 | 久久蜜桃资源一区二区老牛 | 成人精品免费视频 | 中文字幕亚洲一区 | 日韩欧美在线一区 | 国产乱码一二三区精品 | 欧美三级在线 | 国产成人免费在线观看 | 精品日韩一区二区三区 | 97av在线 | 黄色在线免费观看 | 亚洲一区二区在线视频 | 国产精品日韩在线观看一区二区 | 久久久久久久久久久久久91 | 超碰在线网站 | 亚洲人在线播放 | 国产成人精品免费 | 99精品观看| 色婷婷综合在线观看 | 91视频在线观看 | 亚洲综合在线视频 | 91网站在线看 | 国产一区二区精品在线观看 | 91精品国产92 | 久久99精品国产 | 三级黄色片在线观看 | 91精品国产91久久久久久最新 | 日韩精品一区二区三区久久 | 97精品超碰一区二区三区 | 成人99| 久草色视频 | 国产激情视频 | 精品一区二区三 | 狠狠色狠狠色综合日日92 | 国产一区不卡 | 91色综合|