久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Nginx+Tomcat關于Session的管理【面試+工作】

 Java幫幫 2020-01-02


nginx安裝配置

1.安裝nginx


提示報如下錯誤:


解決辦法安裝epel:EPEL是企業(yè)版 Linux 附加軟件包的簡稱,,EPEL是一個由Fedora特別興趣小組創(chuàng)建、維護并管理的,,針對 紅帽企業(yè)版 Linux(RHEL)及其衍生發(fā)行版(比如 CentOS,、Scientific Linux、Oracle Enterprise Linux)的一個高質量附加軟件包項目,;


安裝完之后,,即可成功安裝nginx;

2.啟動,、停止nginx

先進入nginx的目錄


執(zhí)行命令


nginx+tomcat負載均衡

1.準備2個tomcat,分別指定端口為8081,,8082


修改webapps/ROOT的index.jsp,,方便測試


最后的輸出在兩個tomcat下面指定各自的端口號8081和8082

2.nginx配置負載均衡(默認策略)

修改/etc/nginx/下面的nginx.conf


此處配置的負載均衡策略是默認的輪詢策略,nginx還支持其他策略包括:ip_hash,、weight,、fair(第三方)、url_hash(第三方),;

默認策略每個web請求按時間順序逐一分配到不同的后端服務器,,這種情況下每次請求都會創(chuàng)建一個新的session,下面做簡單測試:

第一次請求http://ip/


第二次刷新http://ip/


第三次刷新http://ip/


可以發(fā)現(xiàn)每次都產生一個新的session,,而且消息按時間順序逐一分配到不同的后端服務器,,一般需要保持session會話的網站都不允許出現(xiàn)每次請求都產生一個session;

3.nginx配置負載均衡(黏性Session)

每個請求按訪問ip的hash結果分配,,這樣每個訪客固定訪問一個后端服務器,,可以解決session的問題;nginx可以通過在upstream模塊配置ip_hash來實現(xiàn)黏性Session,;


下面做簡單測試:

第一次請求http://ip/


第二次刷新http://ip/


第三次刷新http://ip/


可以發(fā)現(xiàn)第一次請求設置了key=value,后面每次都能獲取到key值,,sessionId沒有改變,tomcat也沒有改變,,實現(xiàn)了黏性Session,;

此時可以把port=8081的tomcat停掉,然后再觀察

第四次刷新http://ip/


第五次刷新http://ip/


可以發(fā)現(xiàn)消息轉發(fā)到了tomcat-8082,,并且session丟失,,重新創(chuàng)建了新的session,;

如何讓這種情況session不丟失,也有兩種方案:Session復制和Session共享,;Session共享從擴展性,,性能方面都更加好,下面重點介紹一下Session共享如何實現(xiàn),;

nginx+tomcat實現(xiàn)Session共享

Session共享思想就是把session保存到一個公共的地方,,用的時候再從里面取出來,具體這個公共的地方可以是:redis,,db,,memcached等,下面已redis為實例

1.redis安裝配置


安裝完成以后配置文件/etc/redis.conf

啟動redis服務端


啟動客戶端


2.Tomcat引入依賴的jar

$TOMCAT_HOME/lib添加如下jar包


3.Tomcat修改配置

修改$TOMCAT_HOME/conf目錄下的context.xml文件


Tomcat提供了一個開放的session管理和持久化的org.apache.catalina.session.ManagerBase,,繼承這個抽象類并做一些簡單的配置,,即可讓你的session管理類接管Tomcat的session讀取和持久化,這里使用的是tomcat-redis-session-manager  https://github.com/jcoleman/tomcat-redis-session-manager來管理session,;

RedisSessionManager繼承于org.apache.catalina.session.ManagerBase類,,對session的相關操作都在此類中;

4.測試

第一次請求http://ip/


第二次刷新http://ip/


將tomcat-8081停掉,, 第三次刷新http://ip/


可以發(fā)現(xiàn)此時消息已經轉發(fā)到tomcat-8082節(jié)點了,,但是session沒有改變,同時key也可以獲取到值,;

5.查看redis


可以發(fā)現(xiàn)redis里面已經存放了session對象,,并且使用sessionId作為key值,存放了session的二進制數據,;

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多