美文网首页
nginx + memcached + tomcat负载均衡实现

nginx + memcached + tomcat负载均衡实现

作者: ivan_cq | 来源:发表于2018-10-15 17:24 被阅读0次

    实验环境:
    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负载均衡实现

          本文链接:https://www.haomeiwen.com/subject/bnsfzftx.html