实验环境:
server1 : nginx,memcache,tomcat,java
server2 : memcache,tomcat,java
为了实验效果更加明显,我先实现了nginx+tomcat负载均衡。
- server1,2 编译安装 jdk,这样使得tomcat 可以支持jsp页面
[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模块
由于我用的纯净的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
实现nginx对server1和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共享。
这个时候配置已经完成需要做一下测试检查配置是否正确。
确定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 查看实验效果
---------->这次博客可以说写的很愉快了~~~