亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

1. 基于ip_hash的會話保持

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

2. 基于cookie的會話保持

  • 這種方式就是將用戶的cookie存入session里,當用戶分配到不同的服務器時,先判斷服務器是否存在該用戶的session,如果沒有就先把cookie里面的sessoin存入該服務器,實現(xiàn)session會話保持。
  • 缺點是存入cookie有安全隱患,比如黑客可能會獲取你的cookie從而獲取你相關(guān)信息。
  • 使用這種方式實現(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對應版本的源碼包
[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:設置瀏覽器中保持cookie的時間
  • domain:定義cookie的域
  • path:為cookie定義路徑

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

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

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

3. 會話保持的作用

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

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

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

相關(guān)文章

  • Nginx配置多個HTTPS域名的方法

    Nginx配置多個HTTPS域名的方法

    本篇文章主要介紹了Nginx配置多個HTTPS域名的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Nginx的搭建與核心配置方法

    Nginx的搭建與核心配置方法

    Nginx是一個高性能的反向代理和 Web服務器軟件,最初是由俄羅斯人 Igor Sysoev開發(fā)的,其源代碼基于雙條款BSD許可證發(fā)布,因其系統(tǒng)資源消耗低、運行穩(wěn)定且具有高性能的并發(fā)處理能力等特性,這篇文章主要介紹了Nginx的搭建與核心配置,需要的朋友可以參考下
    2024-06-06
  • Nginx與瀏覽器緩存的處理方法

    Nginx與瀏覽器緩存的處理方法

    這篇文章主要介紹了Nginx與瀏覽器緩存的處理方法,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-04-04
  • nginx?80端口配置多個location無效訪問404問題

    nginx?80端口配置多個location無效訪問404問題

    這篇文章主要介紹了nginx?80端口配置多個location無效訪問404問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Nginx搭建高效的靜態(tài)圖片服務器的方法步驟

    Nginx搭建高效的靜態(tài)圖片服務器的方法步驟

    高效地管理和分發(fā)靜態(tài)資源是至關(guān)重要的,本文主要介紹了Nginx搭建高效的靜態(tài)圖片服務器的方法步驟,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • Nginx中l(wèi)ocation proxy_pass加與不加/的區(qū)別說明

    Nginx中l(wèi)ocation proxy_pass加與不加/的區(qū)別說明

    本文總結(jié)了Nginx配置中的location匹配規(guī)則和proxy_pass用法,包括前綴匹配、精確匹配、正則表達式匹配、通配符匹配以及proxy_pass的配置細節(jié)
    2024-12-12
  • nginx反向代理進行yum配置的步驟詳解

    nginx反向代理進行yum配置的步驟詳解

    這篇文章主要給大家介紹了關(guān)于nginx反向代理進行yum配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • 如何利用nginx通過正則攔截指定url請求詳解

    如何利用nginx通過正則攔截指定url請求詳解

    這篇文章主要介紹了如何利用nginx通過正則攔截指定url請求的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用nginx具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-05-05
  • nginx前端部署后,訪問不到同一臺機器的后端問題

    nginx前端部署后,訪問不到同一臺機器的后端問題

    這篇文章主要介紹了nginx前端部署后,訪問不到同一臺機器的后端問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Nginx?禁止直接訪問目錄或文件的操作方法

    Nginx?禁止直接訪問目錄或文件的操作方法

    Nginx?默認是不允許列出整個目錄的,那么需要這樣的功能怎么操作呢,下面小編給大家介紹下Nginx?禁止直接訪問目錄或文件的方法,需要的朋友可以參考下
    2022-10-10

最新評論