实验基于上次实验

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/


Screenshot from 2018-02-18 10-44-19.png


[root@server2 local]# vim /etc/profile   编辑文件,在最后加上

Screenshot from 2018-02-18 10-45-57.png

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


先运行
[root@server2 local]# java
[root@server2 local]# javac
[root@server2 ~]# vim test.java

Screenshot from 2018-02-18 10-49-19.png

Screenshot from 2018-02-18 10-50-11.png



二、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/

Screenshot from 2018-02-18 10-53-55.png



[root@server2 tomcat]# bin/startup.sh   执行  开启tomcat


Screenshot from 2018-02-18 11-33-10.png

查看端口

Screenshot from 2018-02-18 11-35-32.png


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

Screenshot from 2018-02-18 11-37-30.png


编辑文件

Screenshot from 2018-02-18 11-39-31.png


浏览器访问


Screenshot from 2018-02-18 11-41-16.png


server3

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

Screenshot from 2018-02-18 19-27-48.png

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

Screenshot from 2018-02-19 10-20-36.png



server1

修改配置文件
[root@server1 conf]# pwd
/usr/local/openresty/nginx/conf
[root@server1 conf]# vim nginx.conf


Screenshot from 2018-02-19 10-05-09.png



Screenshot from 2018-02-19 10-05-29.png



浏览器进行访问

Screenshot from 2018-02-19 10-07-04.png

修改server2和server3端的test.jsp里面的内容如下

Screenshot from 2018-02-19 10-13-27.png


Screenshot from 2018-02-19 10-13-35.png


再次测试时效果如下

Screenshot from 2018-02-19 10-22-48.png

Screenshot from 2018-02-19 10-22-54.png

修改配置文件,加入算法

Screenshot from 2018-02-19 10-24-32.png


客户端访问时

Screenshot from 2018-02-19 10-25-58.png


写入sticky算法时

Screenshot from 2018-02-19 10-26-58.png

如下会有错误,需要加入模块

Screenshot from 2018-02-19 10-28-20.png


此时我们需要,先注释掉所加入的内容,关掉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  解压


Screenshot from 2018-02-19 10-34-36.png


[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
Screenshot from 2018-02-19 11-07-24.png


Screenshot from 2018-02-19 11-07-34.png


如下就ok了!

Screenshot from 2018-02-19 11-08-10.png



三、nginx+tomcat+memcached


在做下面的实验前,先注释掉server1配置文件中的sticky算法模块


server2,3做如下相同更改

[root@server2 ROOT]# pwd
/usr/local/tomcat/webapps/ROOT
[root@server2 ROOT]# vim test.jsp
Screenshot from 2018-02-19 11-18-52.png

Screenshot from 2018-02-19 11-19-05.png


此时浏览器测试,结果如下

输入的后一个用户信息会将前面的覆盖,所以不能对之前的进行保存


Screenshot from 2018-02-19 11-22-59.png



Screenshot from 2018-02-19 11-22-40.png

下来将server1的文件中sticky模块应用

重启服务

效果如下不会覆盖

Screenshot from 2018-02-19 11-43-22.png


当关掉server2的tomcat服务时,将会切换到server3上



Screenshot from 2018-02-19 11-45-22.png



server2,3上均安装有memcached

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

均打开服务

Screenshot from 2018-02-19 11-52-37.png


Screenshot from 2018-02-19 11-52-11.png


交叉存储

  指某些网站为了辨别用户身份,进行session跟踪而存储在用户本地终端上的数据

Screenshot from 2018-02-19 11-55-01.png

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
Screenshot from 2018-02-19 12-23-47.png


failoverNodes="n1"     坏了找自己


Screenshot from 2018-02-19 13-55-18.png


Screenshot from 2018-02-19 12-25-23.png



Screenshot from 2018-02-19 13-56-08.png



[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
Screenshot from 2018-02-19 15-33-39.png

Screenshot from 2018-02-19 15-35-07.png

制作证书

Screenshot from 2018-02-19 15-35-58.png


Screenshot from 2018-02-19 15-36-25.png

Screenshot from 2018-02-19 15-37-42.png

Screenshot from 2018-02-19 15-38-35.png



[root@server1 www]# vim index.html    写入页面

Screenshot from 2018-02-19 15-40-14.png


修改配置文件

Screenshot from 2018-02-19 15-41-07.png



浏览器访问

修改文件,数据重写


Screenshot from 2018-02-19 15-43-25.png


[root@foundation12 包]# curl -I westos.org    客户端测试

Screenshot from 2018-02-19 15-45-10.png


修改文件

Screenshot from 2018-02-19 15-46-36.png

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

Screenshot from 2018-02-19 15-48-29.png