如果浏覽器不支援cookie,那麼sticky不生效,畢竟整個子產品是給予cookie實作的
1、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子產品 (tengine已經自帶了此子產品,無需再次編譯,直接配置即可)
<code># ./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</code>
<code># make</code>
<code># make install</code>
3、配置nginx sticky
nginx 的upstream使用sticky,如下
upstream www_server_pool{
session_sticky path=/ expires=1h;
server 192.168.1.210:80;
server 192.168.1.211:80;
}
<code>/usr/</code><code>local</code><code>/nginx-1.0.6/sbin/nginx -t</code>
<code>/usr/</code><code>local</code><code>/nginx-1.0.6/sbin/nginx -s reload</code>
5、測試nginx sticky
使用sticky的情況下,不管怎麼重新整理都是下面圖
nginx sticky 子產品
不使用nginx sticky子產品,多刷幾次就變了(有時候刷一次,有時候多刷幾次,看機率,不過肯定會變),如下圖
備注:每台後端真實伺服器都會有一個唯一的route值,是以不管你真實伺服器前端有幾個裝了sticky的nginx代理,他都是不會變化的. 這個cookie是會話方式的,是以你浏覽器關閉了,伺服器會給你重新配置設定一台伺服器。
6、nginx sticky其他文法
<code>sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [</code><code>hash</code><code>=index|md5|sha1] [no_fallback];</code>
<code>name: 可以為任何的string字元,預設是route</code>
<code>domain:哪些域名下可以使用這個cookie</code>
<code>path:哪些路徑對啟用sticky,例如path/</code><code>test</code><code>,那麼隻有</code><code>test</code><code>這個目錄才會使用sticky做負載均衡</code>
<code>expires:cookie過期時間,預設浏覽器關閉就過期,也就是會話方式。</code>
<code>no_fallbackup:如果設定了這個,cookie對應的伺服器當機了,那麼将會傳回502(bad gateway 或者 proxy error),建議不啟用</code>
本文轉自crazy_charles 51CTO部落格,原文連結:http://blog.51cto.com/douya/1555514,如需轉載請自行聯系原作者