1. 程式人生 > >企業 - tomcat,數據重寫

企業 - tomcat,數據重寫

搭建java環境 tomcat 交叉存儲 數據重寫


實驗基於上次實驗

server1 nginx

server2 tomcat

server3 tomcat


一、搭建java環境

下載包

jdk-7u79-linux-x64.tar.gz

解壓到指定路徑下
[root@server2 ~]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/


技術分享圖片


[root@server2 local]# vim /etc/profile 編輯文件,在最後加上

技術分享圖片

[root@server2 local]# source /etc/profile


先運行
[root@server2 local]# java
[root@server2 local]# javac


[root@server2 ~]# vim test.java

技術分享圖片

技術分享圖片



二、tomcat

Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和並發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。對於一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache 服務器,可利用它響應HTML標準通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat是Apache 服務器的擴展,但運行時它是獨立運行的,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。


下載

apache-tomcat-7.0.37.tar.gz

解壓到指定路徑

[root@server2 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/

技術分享圖片



[root@server2 tomcat]# bin/startup.sh 執行 開啟tomcat


技術分享圖片

查看端口

技術分享圖片


[root@server2 ROOT]# pwd
/usr/local/tomcat/webapps/ROOT 在此路徑下

技術分享圖片


編輯文件

技術分享圖片


瀏覽器訪問


技術分享圖片


server3

[root@server3 local]# vim /etc/profile

技術分享圖片

[root@server3 local]# source /etc/profile

技術分享圖片



server1

修改配置文件
[root@server1 conf]# pwd

/usr/local/openresty/nginx/conf
[root@server1 conf]# vim nginx.conf


技術分享圖片



技術分享圖片



瀏覽器進行訪問

技術分享圖片

修改server2和server3端的test.jsp裏面的內容如下

技術分享圖片


技術分享圖片


再次測試時效果如下

技術分享圖片

技術分享圖片

修改配置文件,加入算法

技術分享圖片


客戶端訪問時

技術分享圖片


寫入sticky算法時

技術分享圖片

如下會有錯誤,需要加入模塊

技術分享圖片


此時我們需要,先註釋掉所加入的內容,關掉nginx服務

[root@server1 sbin]# ./nginx -s stop

下載包

nginx-sticky-module 為 nginx 的第三方模塊,使 nginx 支持 sticky 模式,所謂 sticky 模式
就是指同一個用戶的訪問請求都被發送到同一個 tomcat 實例上處理。

nginx-sticky-module-ng.tar.gz
[root@server1 ~]# tar zxf nginx-sticky-module-ng.tar.gz 解壓


技術分享圖片


[root@server1 nginx-1.10.1]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-threads --user=nginx --group=nginx --add-module=/root/nginx-sticky-module-ng

[root@server1 nginx-1.10.1]# make && make install
[root@server1 conf]# pwd
/usr/local/lnmp/nginx/conf
[root@server1 conf]# vim nginx.conf
技術分享圖片


技術分享圖片


如下就ok了!

技術分享圖片



三、nginx+tomcat+memcached


在做下面的實驗前,先註釋掉server1配置文件中的sticky算法模塊


server2,3做如下相同更改

[root@server2 ROOT]# pwd
/usr/local/tomcat/webapps/ROOT
[root@server2 ROOT]# vim test.jsp
技術分享圖片

技術分享圖片


此時瀏覽器測試,結果如下

輸入的後一個用戶信息會將前面的覆蓋,所以不能對之前的進行保存


技術分享圖片



技術分享圖片

下來將server1的文件中sticky模塊應用

重啟服務

效果如下不會覆蓋

技術分享圖片


當關掉server2的tomcat服務時,將會切換到server3上



技術分享圖片



server2,3上均安裝有memcached

[root@server3 ROOT]# yum install -y memcached

均打開服務

技術分享圖片


技術分享圖片


交叉存儲

指某些網站為了辨別用戶身份,進行session跟蹤而存儲在用戶本地終端上的數據

技術分享圖片

Tomcat-1 (T1) 將 session 存儲在 memcached-2 (T2)上。只有當 M2 不可用時,T1 才將 session 存
儲在 memcached-1 上(M1 是 T1 failoverNode)。使用這種配置的好處是,當 T1 和 M1 同時崩
潰時也不會丟失 session 會話,避免單點故障。


把如下軟件包放置到server2,3 的/usr/local/tomcat/lib 目錄中
kryo-1.03.jar
kryo-serializers-0.8.jar
memcached-2.5.jar
memcached-session-manager-1.5.1.jarmemcached-session-manager-tc7-1.5.1.jar
minlog-1.2.jar
msm-kryo-serializer-1.5.1.jar
reflectasm-0.9.jar


[root@server2 conf]# pwd
/usr/local/tomcat/conf
技術分享圖片


failoverNodes="n1" 壞了找自己


技術分享圖片


技術分享圖片



技術分享圖片



[root@server2 tomcat]# bin/startup.sh

[root@server2 tomcat]# tail -f logs/catalina.out 查看如下顯示,節點布局正常
INFO: MemcachedSessionService finished initialization, sticky true, operation timeout 1000, with node ids [n2] and failover node ids [n1]


[root@server2 tomcat]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
get E9036174365D937978E22C81291D57DB-n1 瀏覽器
VALUE E9036174365D937978E22C81291D57DB-n1 2048 100
Wa;)?a;)11a;)?a;)?#E9036174365D937978E22C81291D57DB-n1asddasd
END
quit
Connection closed by foreign host.


[root@server3 tomcat]# yum install -y telnet

[root@server3 tomcat]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
get DB8DA8A20A4E163D52E6FE5F6AF34D5F-n2
VALUE DB8DA8A20A4E163D52E6FE5F6AF34D5F-n2 2048 129
Wa;E?Ea;N?01a;N?a;N?#DB8DA8A20A4E163D52E6FE5F6AF34D5F-n2cara123def456lh456abc123
END
quit
Connection closed by foreign host.



四、數據重寫


[root@server1 conf]# vim nginx.conf
技術分享圖片

技術分享圖片

制作證書

技術分享圖片


技術分享圖片

技術分享圖片

技術分享圖片



[root@server1 www]# vim index.html 寫入頁面

技術分享圖片


修改配置文件

技術分享圖片



瀏覽器訪問

修改文件,數據重寫


技術分享圖片


[root@foundation12 包]# curl -I westos.org 客戶端測試

技術分享圖片


修改文件

技術分享圖片

[root@foundation12 包]# curl -I www.westos.org

技術分享圖片




企業 - tomcat,數據重寫