nginx + memcached + tomcat负载均衡实现session共享


实验环境:
server1 : nginx,memcache,tomcat,java
server2 : memcache,tomcat,java


为了实验效果更加明显,我先实现了nginx+tomcat负载均衡。

  • server1,2 编译安装 jdk,这样使得tomcat 可以支持jsp页面
    看结果表示jdk 安装成功
所添加的环境变量

[root@server2 local]# cat /etc/profile | tail -n 5
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin

添加环境变量简单解析

pass;

  • server1和server2安装tomcat.

    安装成功

  • server1 源码编译安装nginx并且同时添加sticky模块

    解压这两个源码包

    隐藏版本号

    关掉debug的一个功能

    由于我用的纯净的rhel6.5系统,所以需要安装依赖,才可以编译安装源码包

[root@server1 cc]# yum install gcc pcre-devel openssl-devel -y


[root@server1 nginx-1.8.1]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-threads --with-http_sub_module --with-file-aio --add-module=/root/sticky


成功

[root@server1 nginx-1.8.1]# make && make install


编译安装成功
查看大小然后再创建一个快捷方式

到此为止第一个阶段的软件已经安装完毕,看看结果吧
在server1上同时开启tomcat

访问server1的8080端口

实现nginx对server1和server2的tomcat的负载均衡

server1上的tomcat测试发布页

server2上的tomcat测试发布页

/13302517-057f30fc94eea0f8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
在server1上修改nginx的配置文件,使得反向代理到server1和server2上的tomcat。

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


检查配置文件语法是否正确,重载nginx服务。

[root@server1 ROOT]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server1 ROOT]# nginx -s reload
开启server1和server2上的tomcat服务。



测试:


通过这个思路的操作就可以实现nginx对于tomcat 的负载均衡


为了实现session共享,我们还需要一个工具memcached.

  • 在server1 和 server2 上安装 memcached


    安装成功
  • 首先,我需要将测试页面导入到server1 和 server1 的tomcat 的发布页面里。



为了使得server1 和 server2 上的tomcat支持memcached需要像其中添加java类库。


修改tomcat的配置文件实现,session共享。
将server1中写好的配置文件复制到server2上一份作修改,这里只是看以下配置文件的路径

这个时候配置已经完成需要做一下测试检查配置是否正确。
确定tomcat是否支持memcached了。

安装成功

出现下面这个日志表示成功了。

信息: MemcachedSessionService finished initialization, sticky true, operation timeout 1000, with node ids [n2] and failover node ids [n1]


接下来就是到了重头戏了-------->session共享

最后一次检查环境

…………emmmmmmmmm出了点小问题,上面忘了去掉nginx配置中sticky的注释了。

t1 t2 m1 m2全开,此时,t1的session存储在t2上


这个时候关掉m2,此时,t1的session存储在m1上,而之前存储在m2上的session会自动被t1复制给m1


再次打开m2,然后关掉t1,此时再观察发现,存储不变,而变成t2接管了。


1、首先,server3上安装nginx.(主要就是配置文件)
java 安装后记得设置环境变量
2、安装tomcat apache-tomcat-7.0.37 yum install memcached
/usr/local/tomcat/webapps/ROOT 默认发布端口8080 ,在这个页面上写发布文件 (test.jsp)
/usr/local/tomcat/conf 修改配置文件,实现nginx与tomcat的负载均衡
/usr/local/tomcat/lib 添加java类库使tomcat支持memcached
/usr/local/tomcat/logs/catalina.out 这个是记录日志文件,可以看memcache功能是否添加成功
telnet locahost 11211 查看实验效果

---------->这次博客可以说写的很愉快了~~~

你可能感兴趣的:(nginx + memcached + tomcat负载均衡实现session共享)