<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Nginx 的session一致性問題 http協議是無狀態的,即你連續訪問某個網頁100次和訪問1次對服務器來說是沒有區別對待的,因為它記不住你。那么,在一些場合,確實需要服務器記住當前用戶怎么辦?比如用戶登錄郵箱后,接下來要收郵件、寫郵件,總不能每次操作都讓用戶輸入用戶名和密碼吧,為了解決這個問題,session的方案就被提了出來,事實上它并不是什么新技術,而且也不能脫離http協議以及任何現有的web技術。session的常見實現形式是會話cookie(session cookie),即未設置過期時間的cookie,這個cookie的默認生命周期為瀏覽器會話期間,只要關閉瀏覽器窗口,cookie就消失了。實現機制是當用戶發起一個請求的時候,服務器會檢查該請求中是否包含sessionid,如果未包含,則系統會創造一個名為JSESSIONID的輸出 cookie返回給瀏覽器(只放入內存,并不存在硬盤中),并將其以HashTable的形式寫到服務器的內存里面;當已經包含sessionid是,服務端會檢查找到與該session相匹配的信息,如果存在則直接使用該sessionid,若不存在則重新生成新的 session。這里需要注意的是session始終是有服務端創建的,并非瀏覽器自己生成的。 但是瀏覽器的cookie被禁止后session就需要用get方法的URL重寫的機制或使用POST方法提交隱藏表單的形式來實現。 # Session共享 - 首先我們應該明白,為什么要實現共享,如果你的網站是存放在一個機器上,那么是不存在這個問題的,因為會話數據就在這臺機器,但是如果你使用了負載均衡把請求分發到不同的機器呢?這個時候會話id在客戶端是沒有問題的,但是如果用戶的兩次請求到了兩臺不同的機器,而它的session數據可能存在其中一臺機器,這個時候就會出現取不到session數據的情況,于是session的共享就成了一個問題 * Session一致性解決方案 (1)session復制 - tomcat 本身帶有復制session的功能。 (2)共享session - 需要專門管理session的軟件, - memcached 緩存服務,可以和tomcat整合,幫助tomcat共享管理session **這里以共享session的方法來探討session一至性的問題。** - 1、在192.168.0.19節點安裝memcache ``` yum -y install memcached systemctl start memcached systemctl enable memcached ``` - 2、web服務器連接memcached的jar包拷貝到tomcat的lib(`/opt/apache-tomcat-7.0.61/lib`),相關資源下載[請點擊這里](https://pan.baidu.com/s/1m6FNp7mmHrluGACslH3-Tg) - 3、修改server.xml里面修改Engine標簽,添加jvmRoute屬性,目的是查看sessionid里面帶有tomcat的名字,就是這里配置的jvmRoute ``` vi /opt/apache-tomcat-7.0.61/conf/server.xml ``` ![3-2-16](http://pded8ke3e.bkt.clouddn.com/3-2-16.png) - 4、配置tomcat的conf目錄下的context.xml ``` vi /opt/apache-tomcat-7.0.61/conf/context.xml ``` ![3-2-17](http://pded8ke3e.bkt.clouddn.com/3-2-17.png) 配置memcachedNodes屬性,配置memcached數據庫的ip和端口,默認11211,多個的話用空格隔開.目的是讓tomcat服務器從memcached緩存里面拿session或者是放session - 5、修改index.jsp,取sessionid看一看 ![3-2-18](http://pded8ke3e.bkt.clouddn.com/3-2-18.png) 重啟tomact ``` sh /opt/apache-tomcat-7.0.61/bin/shutdown.sh sh /opt/apache-tomcat-7.0.61/bin/startup.sh ``` - 6、在另外一個節點重復2-5的步驟 - 7、驗證 ![3-2-19](http://pded8ke3e.bkt.clouddn.com/3-2-19.png) ![3-2-20](http://pded8ke3e.bkt.clouddn.com/3-2-20.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看