nginx使用sticky基于cookie的會話保持方式
nginx使用sticky基于cookie的會話保持
在nginx做負(fù)載均衡下,為了確保一個客戶只和一臺后端服務(wù)器通信達(dá)到會話保持作用,如使用nginx自帶ip_hash,但有很大的缺陷,基于客戶端在集中的一個NAT出口IP,如一個大公司網(wǎng)絡(luò)下多人來訪,結(jié)果就會分配請求集中于某一后端的服務(wù)器,負(fù)載就不均勻了。
nginx-sticky-module這個第三方模塊用于添加一個粘性cookie,該粘性cookie始終轉(zhuǎn)發(fā)到同一上游服務(wù)器。
使用cookie跟蹤上游服務(wù)器使每個瀏覽器都是唯一的,當(dāng)處理多個后端服務(wù)器時,一個客戶端(瀏覽器)總是由同一臺后端服務(wù)器提供服務(wù)(例如用于會話持久性)有時很有用。
當(dāng)然瀏覽器不支持Cookie時,粘性模塊也無法應(yīng)用。
安裝部署
在現(xiàn)有的nginx加裝,從源代碼重新編譯Nginx來獲得該模塊
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
先檢測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
安裝完畢,檢測已安裝模塊
/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ì)說明了。
如需其他用法,參考。
sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback] [secure] [httponly];
name
: 可以為任何的string字符,默認(rèn)是routedomain
:哪些域名下可以使用這個cookiepath
:指定路徑啟用sticky,默認(rèn)路徑/,例如path/test,只有test目錄才會使用sticky做負(fù)載均衡。expires
:cookie過期時間,默認(rèn)瀏覽器關(guān)閉就過期,也就是會話方式 用發(fā)sticky expires=60s;no_fallback
:如請求包含cookie且相應(yīng)后端不可用,nginx將返回502(錯誤網(wǎng)關(guān)或代理錯誤)。secure
:安全啟用安全Cookie,僅通過https轉(zhuǎn)移。httponly
:啟用cookie不會通過js泄漏。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx服務(wù)器中強制使用緩存的配置及緩存優(yōu)先級的講解
這篇文章主要介紹了Nginx服務(wù)器中強制使用緩存的配置及緩存優(yōu)先級的講解,一定程度上可以幫助大家解決Nginx不緩存或緩存失效的問題,需要的朋友可以參考下2016-01-01centos系統(tǒng)下LNMP環(huán)境一鍵安裝
centos下的LNMP環(huán)境一鍵安裝實現(xiàn)方法,需要的朋友可以參考下。2010-06-06Nginx?CertBot配置HTTPS泛域名證書Debian及常見問題
這篇文章主要介紹了Nginx?CertBot配置HTTPS泛域名證書Debian及常見問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11基于Nginx禁止指定IP、國外IP訪問我的網(wǎng)站
這篇文章主要介紹了用Nginx禁止指定IP、國外IP訪問我的網(wǎng)站,想要實現(xiàn)這個功能方法有很多種,這里基于 Nginx 的 ngx_http_geoip2 模塊來禁止國外 IP 訪問網(wǎng)站,需要的朋友可以參考下2022-05-05使用nginx+tomcat+keepalived實現(xiàn)高可用的詳細(xì)步驟
這篇文章主要介紹了nginx+tomcat+keepalived實現(xiàn)高可用,包括安裝nginx服務(wù)的步驟,詳細(xì)介紹了安裝keepalived的方法,對nginx+tomcat+keepalived高可用相關(guān)知識感興趣的朋友一起看看吧2022-03-03