nginx使用sticky基于cookie的會(huì)話保持方式
nginx使用sticky基于cookie的會(huì)話保持
在nginx做負(fù)載均衡下,為了確保一個(gè)客戶只和一臺(tái)后端服務(wù)器通信達(dá)到會(huì)話保持作用,如使用nginx自帶ip_hash,但有很大的缺陷,基于客戶端在集中的一個(gè)NAT出口IP,如一個(gè)大公司網(wǎng)絡(luò)下多人來(lái)訪,結(jié)果就會(huì)分配請(qǐng)求集中于某一后端的服務(wù)器,負(fù)載就不均勻了。
nginx-sticky-module這個(gè)第三方模塊用于添加一個(gè)粘性cookie,該粘性cookie始終轉(zhuǎn)發(fā)到同一上游服務(wù)器。
使用cookie跟蹤上游服務(wù)器使每個(gè)瀏覽器都是唯一的,當(dāng)處理多個(gè)后端服務(wù)器時(shí),一個(gè)客戶端(瀏覽器)總是由同一臺(tái)后端服務(wù)器提供服務(wù)(例如用于會(huì)話持久性)有時(shí)很有用。
當(dāng)然瀏覽器不支持Cookie時(shí),粘性模塊也無(wú)法應(yīng)用。
安裝部署
在現(xiàn)有的nginx加裝,從源代碼重新編譯Nginx來(lái)獲得該模塊
wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz tar -zxvf master.tar.gz mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42 nginx-sticky
先檢測(cè)nginx已安裝的模塊
/usr/local/nginx/sbin/nginx -V
再次進(jìn)入nginx的安裝包位置
cd nginx-1.17.3
按以上結(jié)果,加裝nginx-sticky進(jìn)去
./configure --prefix=/usr/local/nginx --add-module=/root/nginx-sticky/ --with-http_stub_status_module --with-http_ssl_module --with-pcre make (不要make install 這就覆蓋了)
備份先
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old cp ./objs/nginx /usr/local/nginx/sbin/nginx
安裝完畢,檢測(cè)已安裝模塊
/usr/local/nginx/sbin/nginx -V
配置nginx sticky
nginx 的upstream使用sticky,如下
upstream backend { sticky; server 192.168.100.209:80; server 192.168.100.225:80; }
即可開啟了sticky功能使用,已經(jīng)滿足一般業(yè)務(wù)需求,也可以與nginx_http_upstream_check_module一起使用,在這就不詳細(xì)說(shuō)明了。
如需其他用法,參考。
sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback] [secure] [httponly];
name
: 可以為任何的string字符,默認(rèn)是routedomain
:哪些域名下可以使用這個(gè)cookiepath
:指定路徑啟用sticky,默認(rèn)路徑/,例如path/test,只有test目錄才會(huì)使用sticky做負(fù)載均衡。expires
:cookie過(guò)期時(shí)間,默認(rèn)瀏覽器關(guān)閉就過(guò)期,也就是會(huì)話方式 用發(fā)sticky expires=60s;no_fallback
:如請(qǐng)求包含cookie且相應(yīng)后端不可用,nginx將返回502(錯(cuò)誤網(wǎng)關(guān)或代理錯(cuò)誤)。secure
:安全啟用安全Cookie,僅通過(guò)https轉(zhuǎn)移。httponly
:?jiǎn)⒂胏ookie不會(huì)通過(guò)js泄漏。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解
這篇文章主要介紹了Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解,一定程度上可以幫助大家解決Nginx不緩存或緩存失效的問(wèn)題,需要的朋友可以參考下2016-01-01Nginx配置缺少導(dǎo)致CSS不起作用的問(wèn)題解決
本文將分享一個(gè)常見的問(wèn)題Nginx配置缺少導(dǎo)致的CSS不起作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12centos系統(tǒng)下LNMP環(huán)境一鍵安裝
centos下的LNMP環(huán)境一鍵安裝實(shí)現(xiàn)方法,需要的朋友可以參考下。2010-06-06Nginx?CertBot配置HTTPS泛域名證書Debian及常見問(wèn)題
這篇文章主要介紹了Nginx?CertBot配置HTTPS泛域名證書Debian及常見問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11基于Nginx禁止指定IP、國(guó)外IP訪問(wèn)我的網(wǎng)站
這篇文章主要介紹了用Nginx禁止指定IP、國(guó)外IP訪問(wèn)我的網(wǎng)站,想要實(shí)現(xiàn)這個(gè)功能方法有很多種,這里基于 Nginx 的 ngx_http_geoip2 模塊來(lái)禁止國(guó)外 IP 訪問(wèn)網(wǎng)站,需要的朋友可以參考下2022-05-05使用nginx+tomcat+keepalived實(shí)現(xiàn)高可用的詳細(xì)步驟
這篇文章主要介紹了nginx+tomcat+keepalived實(shí)現(xiàn)高可用,包括安裝nginx服務(wù)的步驟,詳細(xì)介紹了安裝keepalived的方法,對(duì)nginx+tomcat+keepalived高可用相關(guān)知識(shí)感興趣的朋友一起看看吧2022-03-03詳解nginx請(qǐng)求頭數(shù)據(jù)讀取流程
這篇文章主要介紹了詳解nginx請(qǐng)求頭數(shù)據(jù)讀取流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03nginx反向代理如何支持網(wǎng)址自動(dòng)添加斜線
這篇文章主要介紹了nginx反向代理如何支持網(wǎng)址自動(dòng)添加斜線問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05