Apache Httpd负载均衡Tomcat并实现Session Sticky和Session Cluster
来源:互联网 发布:淘宝网韩都衣舍男装 编辑:程序博客网 时间:2024/04/29 17:48
实验拓扑
实验步骤
安装配置tomcat
安装配置Apache Httpd并测试
实现session sticky
实现Session Cluster
总结
前言
实验拓扑
实验步骤
安装配置tomcat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@node1 ~]
# [root@node1 ~]# wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.33/bin/apache-tomcat-8.0.33.tar.gz
[root@node1 ~]
# tar xf apache-tomcat-8.0.33.tar.gz -C /usr/local/
[root@node1 ~]
# cd /usr/local ; ln -sv apache-tomcat-8.0.33 tomcat ; cd ~
[root@node1 ~]
# wget http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.rpm #如果下载出错, 使用浏览器下载
[root@node1 ~]
# rpm -ivh jdk-8u77-linux-x64.rpm #安装JDK
[root@node1 ~]
# vim /etc/profile.d/java.sh #定义JAVA_HOME
export
JAVA_HOME=
/usr/java/latest
export
PATH=$JAVA_HOME
/bin
:$PATH
[root@node1 ~]
# vim /etc/profile.d/tomcat.sh #配置tomcat的环境变量
export
CATALINA_BASE=
/usr/local/tomcat
export
PATH=$CATALINA_BASE
/bin
:$PATH
[root@node1 ~]
# source /etc/profile.d/tomcat.sh
[root@node1 ~]
# source /etc/profile.d/java.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@node2 ~]
# vim /usr/local/tomcat/conf/server.xml
#设置默认虚拟主机为web1.anyisalin.com #node3的jvmRoute设置为TomcatB
<Engine name=
"Catalina"
defaultHost=
"web1.anyisalin.com"
jvmRoute=
"TomcatA"
>
#添加虚拟主机
<Host name=
"web1.anyisalin.com"
appBase=
"/data/webapps/"
unpackWARS=
"true"
autoDeploy=
"true"
>
<Context path=
""
docBase=
"/data/webapps"
reloadable=
"true"
/>
<Valve className=
"org.apache.catalina.valves.AccessLogValve"
directory=
"/data/logs"
prefix=
"web1_access_log."
suffix=
".txt"
pattern=
"%h %l %u %t "%r" %s %b"
/>
<
/Host
>
[root@node2 ~]
# mkdir -PV /data/webapps/{WEB-INF,META-INF,classes,lib} #创建目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@node2 ~]
# cd /data/webapps/
[root@node2 ~]
# vim 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@node2 webapps]
# catalina.sh start #启动tomcat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@node3 ~]
# cd /data/webapps/
[root@node3 ~]
# vim 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@node3 webapps]
# catalina.sh start #启动tomcat
安装配置Apache Httpd并测试
1
[root@node1 ~]
# yum install httpd -y
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@node1 ~]
# cd /etc/httpd/conf.d/
[root@node1 conf.d]
# vim virt.conf
<Proxy balancer:
//lbcluster
>
BalancerMember ajp:
//172
.16.1.3:8009 loadfactor=1 route=TomcatA
BalancerMember ajp:
//172
.16.1.4:8009 loadfactor=1 route=TomcatB
<
/Proxy
>
<VirtualHost *:80>
ServerName www.anyisalin.com
ProxyVia On
ProxyRequests Off
ProxyPassReverse / balancer:
//lbcluster/
ProxyPass / balancer:
//lbcluster/
<
/VirtualHost
>
[root@node1 conf.d]
# service httpd start #启动httpd
实现session sticky
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@node1 ~]
# vim /etc/httpd/conf.d/virt.conf
## 主要添加两段参数
##Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
##ProxySet stickysession=ROUTEID
Header add Set-Cookie
"ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/"
env
=BALANCER_ROUTE_CHANGED
#新添加的
<Proxy balancer:
//lbcluster
>
BalancerMember ajp:
//172
.16.1.3:8009 loadfactor=1 route=TomcatA
BalancerMember ajp:
//172
.16.1.4:8009 loadfactor=1 route=TomcatB
ProxySet stickysession=ROUTEID
#新添加的
<
/Proxy
>
<VirtualHost *:80>
ServerName www.anyisalin.com
ProxyVia On
ProxyRequests Off
ProxyPassReverse / balancer:
//lbcluster/
ProxyPass / balancer:
//lbcluster/
<
/VirtualHost
>
[root@node1 conf.d]
# service httpd restart #重启httpd
实现Session Cluster
StandardManager
PersistentManager: 可以将
session
信息保存在持久存储中DeltaManager: 将
session
信息通过多播的形式共享到其他节点BackupManager: 将
session
信息共享到特定的一个节点上
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[root@node2 conf]
# vim server.xml
下列内容放在<Host />内
<Cluster className=
"org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions=
"8"
>
<Manager className=
"org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown=
"false"
notifyListenersOnReplication=
"true"
/>
<Channel className=
"org.apache.catalina.tribes.group.GroupChannel"
>
<Membership className=
"org.apache.catalina.tribes.membership.McastService"
address=
"228.0.1.7"
port=
"45564"
frequency=
"500"
dropTime=
"3000"
/>
<Receiver className=
"org.apache.catalina.tribes.transport.nio.NioReceiver"
address=
"auto"
port=
"4000"
autoBind=
"100"
selectorTimeout=
"5000"
maxThreads=
"6"
/>
<Sender className=
"org.apache.catalina.tribes.transport.ReplicationTransmitter"
>
<Transport className=
"org.apache.catalina.tribes.transport.nio.PooledParallelSender"
/>
<
/Sender
>
<Interceptor className=
"org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"
/>
<Interceptor className=
"org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"
/>
<
/Channel
>
<Valve className=
"org.apache.catalina.ha.tcp.ReplicationValve"
filter=
""
/>
<Valve className=
"org.apache.catalina.ha.session.JvmRouteBinderValve"
/>
<Deployer className=
"org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir=
"/tmp/war-temp/"
deployDir=
"/tmp/war-deploy/"
watchDir=
"/tmp/war-listen/"
watchEnabled=
"false"
/>
<ClusterListener className=
"org.apache.catalina.ha.session.ClusterSessionListener"
/>
<
/Cluster
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@node2 conf]
# cd /data/webapps/
[root@node2 webapps]
# cp /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml WEB-INF/ #拷贝一份模板
[root@node2 webapps]
# vim WEB-INF/web.xml
#添加下面这一行,在</web-app>内
<distributable/>
##注意: 这里是node3
[root@node3 webapps]
# scp node2.anyisalin.com:/usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml #复制node2配置文件
[root@node3 webapps]
# scp node2.anyisalin.com:/data/webapps/WEB-INF/web.xml /data/webapps/WEB-INF/
[root@node2 webapps]
# catalina.sh stop #重启tomcat
[root@node2 webapps]
# catalina.sh start
[root@node3 webapps]
# catalina.sh stop #重启tomcat
[root@node3 webapps]
# catalina.sh start
总结
1 0
- Apache Httpd负载均衡Tomcat并实现Session Sticky和Session Cluster
- Apache Httpd负载均衡Tomcat并实现Session Sticky和Session Cluster
- Apache+Tomcat关于Session Sticky的负载均衡
- Apache+Tomcat关于Session Sticky的负载均衡
- Apache+Tomcat关于Session Sticky的负载均衡
- Apache+Tomcat关于Session Sticky的负载均衡
- 实现Apache,Tomcat集群和负载均衡Session共用
- Apache + Tomcat 负载均衡及Session绑定的实现
- Apache + Tomcat 负载均衡及Session绑定的实现
- Apache + Tomcat 负载均衡及Session绑定的实现
- Apache + Tomcat 负载均衡及Session绑定的实现
- Apache+Tomcat负载均衡及Session绑定的实现
- Apache + Tomcat 负载均衡及Session绑定的实现
- apache+tomcat+memcached实现负载均衡,session共享(摘抄+整合)
- Apache + Tomcat采用AJP实现负载均衡与session同步
- Apache + Tomcat 负载均衡及Session绑定的实现
- Apache代理Tomcat实现session共享 负载均衡图文教程
- 使用Apache Http Server实现负载均衡并共享session
- 欢迎使用CSDN-markdown编辑器
- 图片较多的网站,如淘宝京东、美丽说花瓣、QQ空间、百度图片等都采用哪些技术优化图片展示?
- box plots
- Properties类的使用和源码浅析
- php抽象类和接口类
- Apache Httpd负载均衡Tomcat并实现Session Sticky和Session Cluster
- 最短路:Floyd算法
- 计算机视觉、模式识别、机器学习常用牛人主页链接
- 关于在不同手机上出现的so文件找不到的问题
- Oracle 12c 和 Hadoop:大数据的最佳存储和处理办法
- javascript设计模式--原型模式
- 在C#里面给PPT添加注释
- esds box解析
- source insight 3.5设置