NAT集群部署solo之session server
author:JevonWei
版权声明:原创作品
使用Nginx做代理服务器,部署solo,使用session server做会话黏滞
拓扑图

环境
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管理界面


选择solo应用的war文件部署

配置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测试访问
NAT集群部署solo之session server的更多相关文章
- 使用Tomcat-redis-session-manager来实现Tomcat集群部署中的Session共享
一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储Session 2.使用Cookie来存储Session 3.使用Redis ...
- 使用Tomcat+Redis来实现集群部署中的Session共享问题
一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储Session 2.使用Cookie来存储Session 3.使用Redis ...
- CAS 集群部署session共享配置
背景 前段时间,项目计划搞独立的登录鉴权中心,由于单独开发一套稳定的登录.鉴权代码,工作量大,最终的方案是对开源鉴权中心CAS(Central Authentication Service)作适配修改 ...
- Spring Boot+redis存储session,满足集群部署、分布式系统的session共享
本文讲述spring-boot工程中使用spring-session机制进行安全认证,并且通过redis存储session,满足集群部署.分布式系统的session共享. 原文链接:https://w ...
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...
- ArcGIS Server 9.3集群部署(多som+多soc)
关键字:集群 SOC 分布式 ArcGIS Server http://t.cn/8F8yPF3 http://t.cn/8F8yM4b http://www.netfoucs.com/nj19862 ...
- 理解 OpenStack + Ceph (1):Ceph + OpenStack 集群部署和配置
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- Nginx+Tomcat集群部署
为了获取更好的性能,我们常常需要将tomcat进行集群部署.下文通过nginx转发实现tomcat集群,并通过nginx-upstream-jvm-route插件保证session的粘滞. 应用场景环 ...
- HP DL160 Gen9服务器集群部署文档
HP DL160 Gen9服务器集群部署文档 硬件配置=======================================================Server Memo ...
随机推荐
- 学生成绩管理系统——C语言实现
一.功能实现: 0.浏览学生信息 1.输入学生信息 2.增加学生信息 3.修改学生信息 4.删除学生信息 5.按学号查询 6.按班级查询 7.按姓名查询 8.按课堂名称查询 9.按总分高低排序 10. ...
- 初学Python(三)——字典
初学Python(三)——字典 初学Python,主要整理一些学习到的知识点,这次是字典. #-*- coding:utf-8 -*- d = {1:"name",2:" ...
- Hive笔记——技术点汇总
目录 · 概况 · 手工安装 · 引言 · 创建HDFS目录 · 创建元数据库 · 配置文件 · 测试 · 原理 · 架构 · 与关系型数据库对比 · API · WordCount · 命令 · 数 ...
- 认识sass和webstrom的sass配置
认识sass和webstrom的sass配置 我纳闷啊!电脑死机,我刚才编写的内容全没了. 呵呵! 一.sass的使用 1.首先要到官网下载个稳定的ruby版本,因为sass运行是需要ruby环境 它 ...
- Spring核心--IOC
先说说Spring框架 Spring框架 Spring框架的作用 Spring 的核心(IOC功能) SpringAOP功能 原有的业务流程:请求->servlet-->service-- ...
- HDU5723 Abandoned country (最小生成树+深搜回溯法)
Description An abandoned country has n(n≤100000) villages which are numbered from 1 to n. Since aban ...
- curl---一款实用的URL命令行网络通讯工具/库
最近一段时间在看朴灵翻译的<深入浅出nodejs>,里面有提到一种脱离浏览器的客户端网络通讯工具,curl命令,自己在电脑上试了一下,感觉非常好用,而且莫名的感觉这是一个非常强大的网络工具 ...
- RabbitMQ安装以及java使用(一)
最近闲来无事,整理下基础知识,本次安装 1.RabbitMQ版本是3.6.10 2.操作系统是centOS 7 64位 虚拟机IP:192.168.149.133 1.安装更新系统环境依赖 yum ...
- css小随笔
一.什么是CSS W3C标准中,倡导有3:其一为内容与表现分离,其二为内容与行为分离,其三为内容结构的语义化.其倡导中第一条的"表现"指的便可以说是CSS.CSS全称Cascadi ...
- 云端TensorFlow读取数据IO的高效方式
低效的IO方式 最近通过观察PAI平台上TensoFlow用户的运行情况,发现大家在数据IO这方面还是有比较大的困惑,主要是因为很多同学没有很好的理解本地执行TensorFlow代码和分布式云端执行T ...