APACHE(proxy) + TOMCAT(session复制)实现高可用网站或管理系统集群

news/2024/5/18 21:08:48/文章来源:https://blog.csdn.net/zp820705/article/details/84131268

 

1.方案特点

  • Apache端可选使用sticky session配置负载均衡,是否配置sticky只是影响负载均衡的粒度。
  • Apache端配置故障转移.
  • Tomcat端使用官方文档描述的cluster配置,通过多播实现内存方式的session复制,可选使用同步复制和异步复制。
2.建议场景

对于对SESSION强依赖的系统,并且对系统处理能力要求不是太高,只考虑2TOMCAT作为后端服务的主备方式的情况,这是一种简答的配置。不适合太多的TOMCAT节点,节点越多,复制SESSION的代价会几何方式增加。如:适合小型网站,管理系统,小型业务系统。

 

3.基础环境安装设置

 

操作系统环境,APACHE安装,TOMCAT集群安装,TOMCAT测试工程请参见:

http://zp820705.iteye.com/blog/1347417

 

4.TOMCAT配置

Tomcat集群配置后端Tomcat Server为支持AJP的独立服务,以适应前端Apache配置为粘性会话(sticky-session),Tomcat节点配置Cluster,支持以多播方式进行内存级Session复制。

Tomcat1配置

配置Cluster,使用多播方式同步复制实现节点间session复制。详细配置参数请参见:

http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

 

修改server.xml,在Engine节点内,host节点后,加入Cluster配置,如下:

 

<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.0.4"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"/><ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/><ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/></Cluster>

 

修改Engine节点配置,以支持AJP方式连接

<Engine name="Catalina" defaultHost="localhost">

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

 

完整配置文件请参见:

 

配置完成保存后,通过SCP命令拷贝到TOMCAT2节点

scp server.xml root@10.10.10.12://opt/apache-tomcat-6.0.33/conf/

 

Tomcat2配置

Tomcat2的配置基本与TOMCAT1配置相同,唯一不同的只是AJP的jvmRoute参数不同。

修改server.xml中

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

为:

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

 

5.Apache配置

apache的配置方式还是采用vhost方式配置,主配置文件(conf/httpd.conf)引用(include)vhost子配置文件(conf/extra/httpd-vhosts.conf)方式.

Apache的编译请参考:http://zp820705.iteye.com/blog/1347749

apache编译为支持Proxy后的module情况:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule speling_module modules/mod_speling.so
LoadModule rewrite_module modules/mod_rewrite.so

 删除主配置文件conf/httpd.conf文件中引用vhost的配置行的注释。

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

 Apache虚拟主机配置(httpd-vhost.conf)

apache端可以配置sticky-session或no-sticky-session,sticky-session实现的是会话级别的负载均衡,no-sticky-session实现的是请求级别的负载均衡。可以根据实际情况选择配置。

<VirtualHost *:80>ErrorLog "logs/acooly.org-error_log"LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommonCustomLog logs/access_log vcommonProxyRequests OffProxyPreserveHost on# apache+tomcat clusterProxyPass / balancer://tomcat-cluster/ stickysession=JSESSIONID|jsessionid nofailover=OffProxyPassReverse / balancer://tomcat-cluster/<Proxy balancer://tomcat-cluster/>BalancerMember ajp://10.10.10.11:8009 loadfactor=1 route=tomcat1BalancerMember ajp://10.10.10.12:8009 loadfactor=1 route=tomcat2ProxySet lbmethod=bybusyness</Proxy>
</VirtualHost>

 

<VirtualHost *:80>ErrorLog "logs/acooly.org-error_log"LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommonCustomLog logs/access_log vcommonProxyRequests OffProxyPreserveHost on# apache+tomcat clusterProxyPass / balancer://tomcat-cluster/ProxyPassReverse / balancer://tomcat-cluster/<Proxy balancer://tomcat-cluster/>BalancerMember ajp://10.10.10.11:8009 loadfactor=1 route=tomcat1BalancerMember ajp://10.10.10.12:8009 loadfactor=1 route=tomcat2ProxySet lbmethod=bybusyness</Proxy>
</VirtualHost>

6.测试

1.浏览器访问:http://10.10.10.11/cluster/index.jsp


上图显示后端服务为10.10.10.11

 

2.通过表单设置session参数key1,key2


3.停止10.10.10.11节点上的tomcat服务,再次刷新页面,查看session变量是否存储,如果存储则表示:故障转移和会话复制成功了。


 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_762481.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建站之星安装_凡科、建站之星、微企点这些国内自助建站平台适合小白用户建网页吗?...

凡科、建站之星、微企点这些国内自助建站平台的使用体验&#xff0c;可以看看下面这篇知乎问答&#xff0c;有些用户评价在里面。免费建站平台靠什么盈利&#xff1f;​www.zhihu.com建立个人网页&#xff0c;如果是更新文章、记录、分享用的话&#xff0c;可以用知乎、博客、简…

cdn对动态网站有作用吗_网站友情链接现在还有效果吗?请看友链的八大作用 - 蜘蛛池博客...

原出处&#xff1a;蜘蛛池博客原文链接&#xff1a;网站友情链接现在还有效果吗&#xff1f;请看友链的八大作用 - 蜘蛛池博客说到友情链接&#xff0c;大家都知道了友情链接有提升网站权重排名的作用&#xff0c;但是除了提升权重排名&#xff0c;你还知道它有其它什么作用吗&…

妙用ISA Server的“重定向”功能解决单位网站不能访问的难题

在A市某单位增加了一条电信出口后&#xff0c;发现通过域名不能访问自己单位的网站了&#xff0c;而原来是可以访问的。具体案例如下&#xff1a;该单位原来只有一条网通的出口&#xff0c;采用ISA Server作为防火墙与代理服务器提供共享&#xff0c;单位的网站在局域网中&…

分享我的部分网站设计作品

转载于:https://blog.51cto.com/peishuangcai/439661

K8S网站页面的搭建

目录一、在master01上操作&#xff08;基于之前的多节点环境基础&#xff09;1.1、创建dashborad工作目录1.2、创建资源1.3、登录一、在master01上操作&#xff08;基于之前的多节点环境基础&#xff09; 1.1、创建dashborad工作目录 [rootmaster01 k8s]# mkdir dashboard [r…

使用Varnish代替Squid做网站缓存加速器的详细解决方案

今天写的这篇关于Varnish的文章&#xff0c;已经是一篇可以完全替代Squid做网站缓存加速器的详细解决方案了。网上关于Varnish的资料很少&#xff0c;中文资料更是微乎其微&#xff0c;希望本文能够吸引更多的人研究、使用Varnish。   在我看来&#xff0c;使用Varnish代替Sq…

集成轻量级的IIS实现打包Asp.Net网站生成exe方便快捷的进行客户演示

本文和大家分享一下打包Asp.Net 网站成为一个exe 方便快捷的进行客户演示&#xff0c;挺不错哦。 在Asp时代有一个NetBox 产品可以把整个Asp网站AllInOne的打包成一个exe&#xff0c;在没有IIS的情况下可以单独运行这个exe来开启整个网站。在Asp.Net 下一直没有类似的产品出现&…

23个精美的的国外网站设计作品推荐欣赏

如果一个网站的内容不是很多而且将来内容也不怎么增加的话&#xff0c;那么制作成单页&#xff08;Single Page Websites&#xff09;的形式是很好的选择。这种只有一个页面的网站形式&#xff0c;曾经非常流行&#xff0c;现在依然有很多人喜欢。如果你也想做一个这样的网站&a…

w10系统下怎么删除服务器,win10系统任务栏图标怎么删除_网站服务器运行维护

win10系统任务栏没有搜索框怎么办_网站服务器运行维护win10系统任务栏没有搜索框的解决方法&#xff1a;1、首先使用鼠标右键点击任务栏&#xff1b;2、然后在弹出的菜单中依次点击【Cortana】、【显示搜索框】选项即可。1、点击“开始”菜单&#xff0c;运行“regedit”打开注…

一个引号导致1个小时网站打不开

咱们就说下这个例子&#xff0c;提醒广大开发在写SQL的时候一定要仔细&#xff01;当时情况是这样的&#xff0c;一个慢SQL把数据库CPU连接数跑满&#xff0c;由于并发压力大&#xff0c;CPU空闲瞬时为0&#xff0c;过一会机器被HANG死&#xff0c;连接不上。因涉及公司隐私问题…

【AI实战】手把手教你文字识别(识别篇:LSTM+CTC, CRNN, chineseocr方法)

文字识别是AI的一个重要应用场景&#xff0c;文字识别过程一般由图像输入、预处理、文本检测、文本识别、结果输出等环节组成。 其中&#xff0c;文本检测、文本识别是最核心的环节。文本检测方面&#xff0c;在前面的文章中已介绍过了多种基于深度学习的方法&#xff0c;可针…

360在网站安全防护中的实践

2019独角兽企业重金招聘Python工程师标准>>> 360在网站安全防护中的实践 作为国内首个集网站漏洞检测、网站挂马监控、网站篡改监控于一体的免费检测平台&#xff0c;360网站安全检测平台拥有全面的网站漏洞库及蜜罐集群检测系统&#xff0c;能够第一时间协助网站检…

为网站赢得用户信任的8个建议

对我们来说&#xff0c;无论是浏览网页还是网上购物&#xff0c;互联网都是一个令人担忧的地方。人们对网上的一切都保持着怀疑的态度。信用卡诈骗和身份假冒的出现&#xff0c;导致网站很难获得用户的信任。要获得用户的信任也不是不可能。通过优化网站上的一些可视化元素&…

01-19asp.net基础--网站登录及验证

第一步&#xff1a; 1&#xff09;首先使用“CodeSmith”将Examinee类实体化&#xff0c;并生成实体类连接数据库的方法&#xff0c;存在解决方案下的“App_Code”文件夹下。 修改一下连接某个数据库&#xff1b; private SqlConnection _Conn;public DBConnection(){String co…

在线问答系统html模板,问答系统网站模板

充值模块会员积分:支持设置会员积分及积分累计升级&#xff0c;并获得购买折扣&#xff1b;会员充值:支持会员充值到账号&#xff0c;用于购买商品&#xff0c;下载点数等开通&#xff1b;微信公共号:添加多个公共号&#xff0c;方便管理及推送信息&#xff1b;自定义菜单:能够…

教你如何下载音乐的网站只试镜

打开IE浏览器&#xff0c;选择“Internet选项”&#xff0c;“浏览历史记录”的“设定” 先把打开的目录清空&#xff0c;然后再打开仅仅供试听的站点。比方“http://www.bandari.net/”&#xff0c;待播放结束以后&#xff0c;就能够看到这个音乐文件已经下载下来了 版权声明&…

python爬虫遇到动态加密怎么办?爬取某点评网站内容

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 以下文章来源于早起Python &#xff0c;作者刘早起 Python爬虫、数据分析、网站开发等案例教程视频免费在线观看 https://space.bilibili.com/523606542 在前几天针某…

不为技术而技术:大型网站架构演化解析

短短几十年国内互联网发生了翻天覆地的变化&#xff0c;特别是国家支持互联网发展&#xff0c;提出了“互联网”行动计划&#xff0c;国内各行各业的互联网更是日新月异。作为一个九零后小白没有亲身经历互联网的演变历程&#xff0c;如今看的像淘宝、京东、腾讯这样的大型网站…

网站就必须用响应式布局吗?MVC视图展现模式之移动布局

本文先引入给读者一个自己研究的机会&#xff0c;下次深入说明一下&#xff1a; 废话不多说&#xff0c;直接上图 新建一个mvc的项目 在视图里面添加一个移动端视图 正常访问一下 Bootstrap自带的响应式的方式&#xff08;页面代码并没有改变&#xff09; 我们来模拟一下移动端…