1、session工做原理css
因爲http是無狀態的協議,當咱們訪問了頁面A,而後訪問頁面B,http沒法肯定這2個頁面的訪問是來自同一我的。所以,咱們要用cookie或session來跟蹤用戶,根據受權和用戶身份來顯示不一樣的頁面。例如:用戶a和b同時進行了把商品加入購物車,這時咱們不能區分a和b,因此須要一個session ID來維持這個過程。Cookie是服務器發送給客戶端的,而且把信息保存在客戶端的一個文件中,裏面包含用戶訪問信息,便於下一此訪問直接對到對應的後端服務器。Cookie能夠被禁用,而session id至關於本身的一個屬性,表明本身的身份。 咱們使用session共享,是爲了防止tomcat服務器重啓或掉了以後的數據丟失狀況;維持多個節點之間數據的一致性。html
如下爲基於memcache緩存的session共享: tomcat1和tomcat2將session分別存儲在memcached2和memcached1中(實現交叉存儲),當memcached2不可用時,纔將tomcat1的數據存儲在memcache1中,這樣好處是,當tomcat1和memcached1同時崩潰時也不會丟失session會話,避免單點故障。 java
nginx ---> tomcat ---> memcached
node
2、實驗步驟linux
Server6: 172.25.2.6 nginx tomcat memcached
nginx
Server1: 172.25.2.1 tomcat memcachedweb
真機中進行測試。
apache
1) 在server6和server1中安裝jdk。 vim
---> tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/ 後端
---> cd /usr/local
---> ln -s jdk-7u79/ java # 作一個軟連接,方便使用
---> vim /etc/profile # 配置java的環境變量
---> source /etc/profile # 從新加載配置文件
2)對安裝好的jdk進行檢測
---> Vim test.java # 在java中,類名要和文件名相同;且文件名後綴爲.java
---> javac test.java # 生成.class文件
---> java test # 執行後的運行結果爲hello xniu~
3)在server6和server1中安裝tomcat
---> tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local
---> cd /usr/local
---> ln -s apache-tomcat-7.0.37/ tomcat # 軟鏈接
4)在tomcat的默認發佈目錄編寫.jsp文件測試,查看apache是否安裝成功(在此以server6做爲實例演示,server1步驟與6相同)
---> vim test.jsp
---> /usr/local/tomcat/bin/startup.sh # 啓動tomcat服務
#在瀏覽器中,使用172.25.2.6:8080/test.html來進行查看
5)對server6的nginx服務進行配置。
---> vim /usr/local/nginx/conf/nginx.conf
6)在server6和server1中下載memcached服務,並啓動服務。
---> yum install -y memcached # 在yum倉庫中有,可直接下載
---> /etc/init.d/memcached start
---> netstat -antlp| grep 11211 # memcached服務默認端口爲11211
7)在server6和server1中編輯tomcat的配置文件,添加以下信息
---> vim /usr/local/tomcat/conf/content.xml # 添加在最後
8) 修改server1和server6下的test.jsp頁面。內容以下
---> vim /usr/local/tomcat/webapps/ROOT/test.jsp
10) 將jar包放在server6和server1的/usr/local/tomcat/lib下。
11) 打開server6的tomcat,nginx;server1的tomcat(因爲以前啓動了memcache,在這就不啓動了)
---> /usr/local/tomcat/bin/startup.sh
---> nginx
# 此時,咱們能夠在日誌中查看memcache的節點信息
---> cat /usr/local/tomcat/logs/cataline.out
12) 此時,咱們的配置大體完成了,能夠在瀏覽器中輸入172.25.2.6/test.jsp
# 安裝telnet,查看memcache的存儲記錄
---> yum install -y telnet
---> telnet localhost 11211 # localhost爲主機ip;11211爲端口號(使用get id號來查看)