Nginx+Tomcat+Memcache负载均衡实现session共享

74 篇文章 0 订阅
42 篇文章 0 订阅

本主题操作环境为rhel6.5.x86_64的虚拟机

memcache的安装请参阅 Memcache认识及php memcache扩展

1. 配置java环境

下载一个jdk包,以包格式为tar.gz为例依次执行以下动作:

tar -zxf jdk...tar.gz -C /usr/locl/jdk
接下来添加java环境变量
vim /etc/profile#在最后添加以下内容

export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile

完成以上步骤之后可以通过以下命令进行测试

which javac
which java

或者写一个Java程序测试一下(保存为test.java):

public class HelloWorld {
    /* 第一个Java程序
     * 它将打印字符串 Hello World
     */
    public static void main(String []args) {
        System.out.println("Hello World"); // 打印 Hello World
    }
}

依次运行:

javac test.java
java test

输出结果为:Hello World表示你会写Java了,年轻人你很厉害嘛

2. 配置apache-tomcat

本人环境中使用的是apache-tomcat-*.*.*.tar.gz
直接解压到/usr/local

tar -zxf apache-tomcat-\*.\*.\*.tar.gz -C /usr/locl/tomcat

测试一下tomcat是否能够正常跑起来:

启动服务
cd /usr/local/tomcat/bin

./startup.sh#开启tomcat

./shutdown.sh #关闭tomcat

查看tomcat的启动状态:

[root@localhost bin]# ps -ef | grep tomcat
[root@localhost bin]# netstat -anltp | grep 8080

在浏览器中输入你的tomcat所在主机ip加端口8080进行测试访问,如果输出内容为tomcat测试页则表示apache-tomcat成功了

接下来就是为我们的tomcat配置memcache了:
首先我们需要一些java的jar包:
这些包你可以通过任何途径下载,我是在250上下的,然后全部放在/usr/local/tomcat/lib下

这里写图片描述

然后修改配置文件:

vim /usr/local/tomcat/confi/context.xml

<Context docBase="F:/tomcats/tomcat-7.0.2_2/webapps"  path= "/msm"  reloadable= "true"  > 

     <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.5.1:11211,n2:172.25.5.2:11211"#因为这里我需要做集群、failover所以配置了两台主机
failoverNodes="n2"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>

</Context>  

到这里我得说一下,我这里配置了两台Tomcat服务主机172.25.5.1和172.25.5.2,用来做集群,所以两台主机的基本配置是一样的,只是在上边这个/usr/local/tomcat/confi/context.xml文件中的failoverNodes=”“参数两台主机都指向了对方,需要注意

这样的话我们就算是配置好了一台主机,如果嫌麻烦,我们可以快速配置另一台主机:

scp -r /usr/local/jdk root@otherpc:/usr/local/jdk
scp -r /usr/local/tomcat root@otherpc:/usr/local/tomcat

记得在另外一台主机中添加java环境变量:
vim /etc/profile#在最后添加以下内容

export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile

记得在所有一切配置结束后进行验证!

3. 安装Nginx(在第三台主机172.25.5.3上,要做Nginx负载均衡)

下载源码包解压
这里写图片描述

安装nginx-sticky-module
#基于cookie实现会话保持的第三方模块

模块下载地址:https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
并解压到nginx-1.10.1相同目录中,然后编译安装Nginx,注意本示例只是针对nginx-sticky-module模块,其他模块请按需添加!!!

cd nginx-1.10.1
./configure --prefix=/opt/nginx --add-module=../nginx-sticky-module-ng
make && make install

配置Nginx
vim /opt/nginx/conf/nginx.conf
需要添加或者修改的内容如下:

upstream tomcat{
    sticky;
    server 172.25.5.1:8080;
    server 172.25.5.2:8080;
}

server {
listen 80;
server_name localhost;
…..

    location ~ \.jsp$ {  
            proxy_pass      http://tomcat;
    } 
}       

所有配置完成,检查各相关服务状态:Nginx、tomcat、memcache进行验证测试:

首先在两台tomcat主机中写好测试页,然后通过浏览器外部访问Nginx主机172.25.5.3,不出问题就会看到负载均衡的结果,然后写一个表单来测试一下会话保持,结果就是用户提交数据到一台后端主机,即使这台主机挂掉了,另外一台主机会接替挂掉的主机继续提供服务,而且用户提交的数据是不会丢失的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值