最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx會話保持的具體實(shí)現(xiàn)

 更新時間:2024年07月02日 10:55:21   作者:TA548464  
會話保持是指在會話持續(xù)或會話完成一個任務(wù)或一個事務(wù)的時間段內(nèi),將客戶端請求引導(dǎo)至同一個后端Web服務(wù)器或應(yīng)用服務(wù)器,本文主要介紹了Nginx會話保持的具體實(shí)現(xiàn),感興趣的可以了解一下

1. 基于ip_hash的會話保持

  • 在做Nginx的負(fù)載均衡時,可以在upstream里設(shè)置ip_hash,每個請求按訪問ip的hash結(jié)果分配,映射到固定某一臺的服務(wù)器
  • 當(dāng)后端服務(wù)器宕機(jī)后,session會丟失,再次發(fā)起請求時,會重新固定訪問另一臺正常的服務(wù)器并實(shí)現(xiàn)會話保持。
  • 缺點(diǎn)就是由于同一個IP客戶端都固定訪問一個后端服務(wù)器,這就可能會導(dǎo)致負(fù)載不均衡。下面是 ip_hash 的會話保持格式。
  • ip_hash 源地址哈希算法,將同一客戶端的請求總是發(fā)往同一個后端服務(wù)器,除非該服務(wù)器不可用。
  • url_hash 目標(biāo)地址哈希算法
#ip_hash語法:
upstream backend {
    ip_hash;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com down;
}

2. 基于cookie的會話保持

  • 這種方式就是將用戶的cookie存入session里,當(dāng)用戶分配到不同的服務(wù)器時,先判斷服務(wù)器是否存在該用戶的session,如果沒有就先把cookie里面的sessoin存入該服務(wù)器,實(shí)現(xiàn)session會話保持。
  • 缺點(diǎn)是存入cookie有安全隱患,比如黑客可能會獲取你的cookie從而獲取你相關(guān)信息。
  • 使用這種方式實(shí)現(xiàn)會話保持保持,需要添加sticky_cookie_insert模塊,與 ip_hash 不同之處在于,它不是基于IP來判斷客戶端的,而是基于cookie來判斷。
//編譯安裝sticky模塊
//給yum安裝的nginx添加模塊(1.24最新的版本重新編譯安裝會報錯,1.18的不會報錯,版本兼容性的問題)
?
//安裝編譯環(huán)境
[root@nginx-server ~]# yum install -y pcre* openssl* gcc gcc-c++ make 
[root@nginx-server ~]# wget  https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/08a395c66e42.zip  //下載sticky模塊
[root@nginx-server ~]# nginx -v
nginx version: nginx/1.18.0
[root@nginx-server ~]# wget  http://nginx.org/download/nginx-1.18.0.tar.gz    #下載yum安裝nginx對應(yīng)版本的源碼包
[root@nginx-server ~]# yum install -y unzip    //安裝解壓工具
[root@nginx-server ~]# unzip 08a395c66e42.zip    //解壓模塊包
[root@nginx-server ~]# mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ nginx-sticky-module-ng/
[root@nginx-server ~]# tar xzvf nginx-1.18.0.tar.gz -C /usr/local/    //解壓nginx的源碼包
[root@nginx-server ~]# cd /usr/local/nginx-1.18.0/
?
[root@nginx-server nginx-1.18.0]# nginx -V    //查看yum安裝nginx所有模塊
[root@nginx-server nginx-1.18.0]# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --add-module=/root/nginx-sticky-module-ng
[root@nginx-server nginx-1.18.0]# make && make install
?
//配置基于cookie會話保持
[root@nginx-server conf.d]# vim upstream.conf
upstream jianglt {
        server 192.168.221.136;
        server 192.168.221.138;
        sticky;
}
server {
    listen       80;
    server_name   www.test.com;
    charset utf-8;
    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        proxy_pass http://jianglt;
    }
}
[root@nginx-server conf.d]# nginx -t 
[root@nginx-server conf.d]# nginx -s reload
?
//或者:
upstream jianglt {
        server 192.168.221.136;
        server 192.168.221.138;
        sticky expires=1h domain=testpm.com path=/;
}

說明:

  • expires:設(shè)置瀏覽器中保持cookie的時間
  • domain:定義cookie的域
  • path:為cookie定義路徑

瀏覽器測試訪問;記得在windows本地hosts文件中添加解析

瀏覽器具體的體現(xiàn):
1、訪問www.test.com,會隨機(jī)訪問到一個頁面,可能是136,也可能是138
2、按下F12,打開瀏覽器的控制臺工具,找到請求頭下面的Cookie(例如:Cookie:route=19c3afb04a79d36869450dfe7dca8512),并將Cookie復(fù)制粘貼到記事本中
3、停掉當(dāng)前訪問的服務(wù)器,crtl + F5強(qiáng)制刷新,再次查看瀏覽器中請求頭的Cookie,觀察是否跟前一次的Cookie一樣(如果第一次訪問的是136的頁面,則停掉136,反之,停掉138)

  • 注意:使用后端服務(wù)器可以自身通過相關(guān)機(jī)制保持session同步,如:使用數(shù)據(jù)庫、redis、memcached 等做session復(fù)制

3. 會話保持的作用

會話保持在Web應(yīng)用中具有重要的作用,主要體現(xiàn)在以下幾個方面:

  • 用戶登錄狀態(tài)維護(hù): 通過會話保持,Web應(yīng)用能夠跟蹤用戶的登錄狀態(tài),確保用戶在多次請求之間保持登錄狀態(tài)。這對于需要用戶身份驗(yàn)證的應(yīng)用來說尤為重要,以便提供個性化的服務(wù)和訪問控制。
  • 購物車和交易狀態(tài): 在電子商務(wù)網(wǎng)站中,用戶可能會添加商品到購物車并進(jìn)行結(jié)算。通過會話保持,系統(tǒng)可以跟蹤用戶的購物車狀態(tài),確保用戶在購物過程中的信息不會丟失,同時保護(hù)交易過程的一致性。
  • 個性化用戶體驗(yàn): 對于一些需要根據(jù)用戶個性化設(shè)置或歷史記錄提供服務(wù)的應(yīng)用,會話保持可以確保用戶在訪問過程中保持一致的體驗(yàn)。例如,用戶在一個新聞應(yīng)用中的閱讀歷史、個性化推薦等。
  • 減少重復(fù)認(rèn)證: 在一些分布式系統(tǒng)中,用戶可能會訪問多個服務(wù)。通過會話保持,用戶只需要在登錄時進(jìn)行一次身份驗(yàn)證,然后在整個會話期間,其他服務(wù)可以通過會話標(biāo)識來確認(rèn)用戶身份,避免重復(fù)的身份驗(yàn)證過程。
  • 保持用戶上下文: 有些應(yīng)用需要在用戶多次請求之間保持特定的上下文信息,例如在多步驟的表單提交中,確保用戶在不同步驟之間的數(shù)據(jù)保持一致。
  • 提高系統(tǒng)性能: 通過將用戶請求路由到同一臺后端服務(wù)器,會話保持可以減少后端服務(wù)器之間的數(shù)據(jù)同步和共享的需求,從而提高系統(tǒng)的性能和效率。

到此這篇關(guān)于Nginx會話保持的具體實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Nginx會話保持內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Nginx配置PHP的Yii與CakePHP框架的rewrite規(guī)則示例

    Nginx配置PHP的Yii與CakePHP框架的rewrite規(guī)則示例

    這篇文章主要介紹了Nginx配置PHP的Yii與CakePHP框架的rewrite規(guī)則示例,是這兩款高人氣框架使用Nginx的關(guān)鍵配置點(diǎn),需要的朋友可以參考下
    2016-01-01
  • Nginx下Frp強(qiáng)制重定向?yàn)閔ttps配置詳解

    Nginx下Frp強(qiáng)制重定向?yàn)閔ttps配置詳解

    這篇文章主要介紹了Nginx下Frp強(qiáng)制重定向?yàn)閔ttps配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • nginx常用命令放入shell腳本詳解

    nginx常用命令放入shell腳本詳解

    這篇文章主要介紹了nginx常用命令放入shell腳本詳解,文章講解的很清晰,有感興趣的同學(xué)可以研究下
    2021-02-02
  • nginx共享內(nèi)存的機(jī)制詳解

    nginx共享內(nèi)存的機(jī)制詳解

    在nginx的進(jìn)程模型下,類似流量統(tǒng)計、流量控制、數(shù)據(jù)共享、等需要多個工作進(jìn)程共同配合完成任務(wù),共享內(nèi)存是一個重要的進(jìn)程通訊的方案,本文主要介紹了nginx共享內(nèi)存的機(jī)制詳解,感興趣的可以了解一下
    2022-03-03
  • Nginx 502 Bad Gateway錯誤原因及解決方案

    Nginx 502 Bad Gateway錯誤原因及解決方案

    這篇文章主要介紹了Nginx 502 Bad Gateway錯誤原因及解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • nginx之從main函數(shù)開始了解配置文件處理及配置信息的讀入過程

    nginx之從main函數(shù)開始了解配置文件處理及配置信息的讀入過程

    這篇文章主要介紹了nginx之從main函數(shù)開始了解配置文件處理及配置信息的讀入過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • Nginx上對同一IP訪問的特定URL進(jìn)行限流實(shí)現(xiàn)

    Nginx上對同一IP訪問的特定URL進(jìn)行限流實(shí)現(xiàn)

    要在Nginx上對同一IP訪問的特定URL進(jìn)行限流,您可以使用ngx_http_limit_req_module模塊,本文就來介紹一下如何使用,具有一定的參考價值,感興趣的餓
    2024-01-01
  • Nginx為Tomcat服務(wù)器作反向代理的配置教程

    Nginx為Tomcat服務(wù)器作反向代理的配置教程

    這篇文章主要介紹了Nginx為Tomcat服務(wù)器作反向代理的配置教程,文中以Windows系統(tǒng)為環(huán)境來演示驅(qū)動JSP程序的示例,需要的朋友可以參考下
    2016-03-03
  • Nginx靜態(tài)資源優(yōu)化、壓縮、緩存詳解

    Nginx靜態(tài)資源優(yōu)化、壓縮、緩存詳解

    文章主要介紹了如何優(yōu)化Nginx對靜態(tài)資源的處理,包括sendfile、tcp_nopush和tcp_nodelay三個屬性的配置,以及如何通過設(shè)置Gzip來壓縮靜態(tài)資源,此外,還詳細(xì)解釋了Web緩存的概念,包括客戶端緩存和服務(wù)器緩存,并介紹了瀏覽器緩存的相關(guān)指令和執(zhí)行流程
    2025-12-12
  • mac 下 安裝nginx的方法小結(jié)

    mac 下 安裝nginx的方法小結(jié)

    這里簡單記錄一下在mac系統(tǒng)下安裝nginx的方法,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03

最新評論

留坝县| 浏阳市| 伽师县| 福清市| 孝感市| 阿克| 紫金县| 南宫市| 黑河市| 桂平市| 沅江市| 白城市| 五华县| 砚山县| 泰来县| 武定县| 连南| 马尔康县| 桐乡市| 苏尼特左旗| 汝南县| 岑巩县| 任丘市| 洛阳市| 大悟县| 瓮安县| 天等县| 莆田市| 庐江县| 定安县| 斗六市| 上林县| 贵南县| 西昌市| 驻马店市| 运城市| 余庆县| 泰来县| 和平县| 南丹县| 阿勒泰市|