zoukankan      html  css  js  c++  java
  • NAT集群部署solo之session server

    author:JevonWei
    版权声明:原创作品


    使用Nginx做代理服务器,部署solo,使用session server做会话黏滞
    拓扑图
    image
    环境

    tomcatA    172.16.253.108
    tomcatB    172.16.253.105
    memcachedA 172.16.253.108
    memcachedB 172.16.253.105
    代理服务器 172.16.253.191
    

    在Tomcat主机上搭建httpd服务,使httpd代理本机Tomcat应用,Nginx代理Tomcat

    搭建Tomcat和Httpd服务器

    TomcatA

    [root@TomcatA ~]# yum -y install java-1.8.0-openjdk*
    [root@TomcatA ~]# yum -y install tomcat-lib tomcat tomcat-webapps tomcat-docs-webapp tomcat-admin-webapps
    [root@TomcatA ~]# iptables -F
    [root@TomcatA ~]# setenforce  0
    [root@TomcatA ~]# systemctl start tomcat
    
    配置Tomcat测试页
    [root@TomcatA ~]# mkdir /data/webapps/ROOT/{classes,lib,WEB-INF} -pv
    [root@TomcatA ~]# vim /data/webapps/ROOT/index.jsp 
        <%@ page language="java" %>
        <html>
            <head><title>TomcatB</title></head>
                <body>
                <h1><font color="blue">TomcatB.magedu.com</font></h1>
                <table align="centre" border="1">
                    <tr>
                        <td>Session ID</td>
                    <% session.setAttribute("magedu.com","magedu.com"); %>
                        <td><%= session.getId() %></td>
                    </tr>
                    <tr>
                        <td>Created on</td>
                        <td><%= session.getCreationTime() %></td>
                    </tr>
                </table>
            </body>
        </html>
    [root@TomcatA ~]# vim /etc/tomcat/server.xml
        <Engine name="Catalina" defaultHost="www.jevon1.com">
        </Host>
            <Host name="www.jevon1.com"  appBase="/data/webapps"
            unpackWARs="true" autoDeploy="true">
        </Host>
    [root@TomcatA ~]# systemctl restart tomcat
    
    搭建Httpd
    [root@TomcatA ~]# yum -y install httpd
    [root@TomcatA ~]# vim /etc/httpd/conf.d/tomcat.conf
        <VirtualHost *:80>
            ServerName www.jevon1.com
            ProxyRequests Off
            ProxyVia Off
            ProxyPreserveHost Off
            <Proxy *>
                Require all granted
            </Proxy>
            ProxyPass / http://172.16.253.108:8080/
            ProxyPassReverse / http://172.16.253.108:8080/
            <Location />
                Require all granted
            </Location>
        </VirtualHost>
    [root@TomcatA ~]# systemctl start httpd
    

    TomcatB

    [root@TomcatB ~]# yum -y install java-1.8.0-openjdk*
    [root@TomcatB ~]# yum -y install tomcat-lib tomcat tomcat-webapps tomcat-docs-webapp tomcat-admin-webapps
    [root@TomcatB ~]# iptables -F
    [root@TomcatB ~]# setenforce  0
    [root@TomcatB ~]# systemctl start tomcat
    
    配置Tomcat测试页
    [root@TomcatB ~]# mkdir /data/webapps/ROOT/{classes,lib,WEB-INF} -pv
    [root@TomcatB ~]# vim /data/webapps/ROOT/index.jsp 
        <%@ page language="java" %> 
        <html>
            <head><title>TomcatA</title></head>
                <body>
                <h1><font color="red">TomcatA.magedu.com</font></h1>
                <table align="centre" border="1">
                    <tr>
                        <td>Session ID</td>
                    <% session.setAttribute("magedu.com","magedu.com"); %>
                        <td><%= session.getId() %></td>
                    </tr>
                    <tr>
                        <td>Created on</td>
                        <td><%= session.getCreationTime() %></td>
                    </tr>       
                </table>
            </body>
        </html>
    [root@TomcatB ~]# vim /etc/tomcat/server.xml
        <Engine name="Catalina" defaultHost="www.jevon2.com">
        </Host>
            <Host name="www.jevon2.com"  appBase="/data/webapps"
            unpackWARs="true" autoDeploy="true">
        </Host>
    [root@TomcatB ~]# systemctl restart tomcat
    
    搭建Httpd
    [root@TomcatB ~]# yum -y install httpd
    [root@TomcatB ~]# vim /etc/httpd/conf.d/tomcat.conf
        <VirtualHost *:80>
            ServerName www.jevon2.com
            ProxyRequests Off
            ProxyVia Off
            ProxyPreserveHost Off
            <Proxy *>
                Require all granted
            </Proxy>
            ProxyPass / http://172.16.253.108:8080/
            ProxyPassReverse / http://172.16.253.108:8080/
            <Location />
                Require all granted
            </Location>
        </VirtualHost>
    [root@TomcatB ~]# systemctl start httpd
    

    Haproxy代理

    [root@nginx ~]# yum -y install haproxy
    [root@nginx ~]# vim /etc/hosts
    172.16.253.108 www.jevon1.com
    172.16.253.105 www.jevon2.com
    172.16.250.127 www.danran.com
    [root@nginx ~]# vim /etc/nginx/nginx.conf
        http {
            upstream appsrvs {
                server www.jevon1.com:8080;
                server www.jevon2.com:8080;
            }
            server {
                listen 80;
                server_name www.danran.com;
                index index.jsp index.html;
                location / {
                    proxy_pass http://appsrvs/;
                }
            }
        }
    [root@nginx ~]# nginx -t
    [root@nginx ~]# systemctl start nginx
    

    安装后端memcached服务集群

    下载相关程序到Tomcat主机的//usr/share/java/tomcat目录下

    javolution-5.4.3.1.jar
    memcached-session-manager-1.8.3.jar
    memcached-session-manager-tc7-1.8.3.jar
    msm-javolution-serializer-1.8.3.jar 
    spymemcached-2.11.1.jar /usr/share/java/tomcat
    

    memcachedA

    [root@TomcatA ~]# yum -y install memcached
    [root@TomcatA ~]# systemctl start memcached.service 
    [root@TomcatA ~]# ss -ntl
    

    memcachedB

    [root@TomcatB ~]# yum -y install memcached
    [root@TomcatB ~]# systemctl start memcached.service 
    [root@TomcatB ~]# ss -ntl
    

    配置Tomcat连接memcached服务端

    TomcatA

    [root@TomcatA ~]# vim /etc/tomcat/server.xml 
        <Engine name="Catalina" defaultHost="www.jevon1.com" jvmRoute="tcA">
         <Host name="www.jevon1.com"  appBase="/data/webapps"
            unpackWARs="true" autoDeploy="true">
            <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
                memcachedNodes="n1:172.16.253.108:11211,n2:172.16.253.105:11211"
                failoverNodes="n1"
                requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
                transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
            />
        </Host>
    [root@TomcatB ~]# systemctl restart tomcat
    

    TomcatB

    [root@TomcatB ~]# vim /etc/tomcat/server.xml
        <Engine name="Catalina" defaultHost="localhost" jvmRoute="tcB">
        </Host>
       <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
            memcachedNodes="n1:172.16.253.108:11211,n2:172.16.253.105:11211"
            failoverNodes="n1"
            requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
            transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
          />
    </Host>
    [root@TomcatB ~]# systemctl restart tomcat
    

    部署solo

    [root@TomcatA ~]# vim /etc/tomcat/server.xml
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tcA">
    <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
     <Context path="/solo-2.2.0" docBase="solo-2.2.0" reloadable="true">
          <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
            memcachedNodes="n1:172.16.253.108:11211,n2:172.16.253.105:11211"
            failoverNodes="n1"
            requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
            transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
        />
    </Context>
    [root@TomcatA ~]# vim /etc/tomcat/tomcat-users.xml
    <role rolename="manager-gui"/>  \启用manager-gui管理组
    <user username="tomcat" password="tomcat" roles="manager-gui"/> \添加用户到manager-gui管理组中,用户为tomcat,密码为tomcat
    [root@danran ~]# systemctl restart tomcat
    

    浏览器http://172.16.253.105:8080/进入Manager App管理界面
    image
    image
    选择solo应用的war文件部署
    image

    配置Tomcat的服务代理
    [root@TomcatB webapps]# vim /etc/httpd/conf.d/tomcat.conf 
        <VirtualHost *:80>
            ServerName www.jevon2.com
            ProxyRequests Off
            ProxyVia On
            ProxyPreserveHost On
            <Proxy *>
                Require all granted
            </Proxy>
            ProxyPass / http://172.16.253.105:8080/solo-2.2.0/
            ProxyPassReverse / http://172.16.253.105:8080/solo-2.2.0/
            <Location />
                Require all granted
            </Location>
        </VirtualHost>
    [root@TomcatB webapps]# systemctl restart httpd
    
    修改solo的服务器配置文件
    [root@TomcatB ~]# vim  /usr/share/tomcat/webapps/solo-2.2.0/WEB-INF/classes/latke.properties
        serverHost=172.16.253.105 \本机Tomcat的IP
    [root@TomcatB ~]# systemctl restart tomcat
    [root@TomcatB ~]# ss -ntl
    

    TomcatB配置同TomcatA一致

    client测试访问

  • 相关阅读:
    【Oracle】dba_jobs字段说明
    【工作杂记】一次修改表字段名操作导致的报表缺失了2个小时的数据
    【SAP BO】无法识别账户信息:无法访问CMS。计算机上的CMS由于某个严重错误而停止。(FWM 20031)
    【虚拟机】在VMware中安装Server2008之后配置网络连接的几种方式
    vlc for android 编译过程
    ubuntu19更新源
    nginx错误Too many open files
    mp4流化
    编译ffmpeg的时候出现ERROR: libx264 not found
    nginx中Lua模块内置变量
  • 原文地址:https://www.cnblogs.com/JevonWei/p/7471439.html
Copyright © 2011-2022 走看看