Apache-httpserver + Tomcat负载均衡

本文介绍如何使用Apache的mod_jk模块实现Tomcat负载均衡,并通过mod_proxy模块完成反向代理设置。涵盖配置步骤及关键参数说明。
Apache-httpserver + Tomcat负载均衡


做负载均衡,也可以用来做项目之间的session共享,首先说一下我的项目情况,我的服务器在一台电脑上,一共有两个项目,一个是我们的主业务网站,
另一个就是网站的论坛,现在需要给主网站做负载均衡,用两个tomcat,然后用一个另tomcat来跑bbs


第一步:修改httpd.conf文件,在文件最底部加上如下内容
LoadModule     jk_module  modules/mod_jk.so
JkWorkersFile conf/workers.properties
NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.offlineshenzhoudai.com
#ServerAlias domain.tld *.domain.tld
DocumentRoot "G:/sessionShare/virtualHost_szdai"
JkMount /* worker1Balancer
#JkUnMount /jk-status
JkMount /jk-status  jk-status
#<IfModule jk_module>
#JkWorkersFile conf/workers.properties
#JkMountFile conf/uriworkermap.properties
#</IfModule>
</VirtualHost>

<VirtualHost *:80>
ServerName bbs.offlineshenzhoudai.com
DocumentRoot "G:/sessionShare/virtualHost_bbs"
JkMount /* worker2
</VirtualHost>




我们的负载是通过mod_jk这个http server的扩展模块来进行的,可以看到,我们在第一步加载了
模块 ,LoadModule jk_module  modules/mod_jk.so

然后指定了配置文件,也就是mod_jk的工作文件,内容如下

# This file provides minimal jk configuration properties needed to
# connect to Tomcat.
#
# The workers that jk should create and work with
#

worker.list=worker1Balancer,worker2,jk-status //jk工作时要创建的对象worker1Balancer , 这个是主业务网站的负载均衡器,worker2是bbs的服务器,
//jk是监控模块工作状态的

# Defining a worker named node1 and of type ajp13
# Note that the name and the type do not have to match.

worker.node0.type=ajp13
worker.node0.host=localhost
worker.node0.port=8009

worker.node1.type=ajp13
worker.node1.host=localhost
worker.node1.port=10001

worker.worker2.type=ajp13
worker.worker2.host=localhost
worker.worker2.port=10002

# Defining a load balancer

worker.worker1Balancer.type=lb
worker.worker1Balancer.balance_workers=node0,node1

# Define status worker

worker.jk-status.type=status

worker.lb.sticky_session=false
worker.lb.sticky_session_force=1


这是httpserver的配置,然后需要修改的就是tomcat的配置文件,找到conf下的server.xml文件,

去掉 <Connector port="10001" protocol="AJP/1.3" redirectPort="8443" />的注释       作用是开启tomcat支持AJP协议连接器,也就是支持AJP协议链接(httpserver就是通过这个协议连接tomcat的)

去掉<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>的注释    让tomcat之间共享session,这样就能够支持session共享了



别人的文章 , 以后参考参考 http://wangjianming555.blog.51cto.com/2621896/1020732


2014-10-14 21:40

上面的文章是8个月前写的,自己看都觉得乱七八糟,竟然被人浏览了七八十次,这里向看我博客的人道歉,我写的太差了,希望以后可以慢慢改正,我博客写清楚,方便自己以后查看,同时 也给有需要的朋友参考.

现在加的内容和之前的内容其实是差不多的主题,都是围绕Apache 的httpd server来说的,前面是借助于mod_jk.so这个模块来做负载均衡,今天我需要的功能是借助于proxy_http_module来进行反向代理,先解释一下什么是反向代理
一般来说,代理是多台pc通过代理来访问特定内容,就像我们翻墙时用国外的代理软件来看 一些被屏蔽的网站,我画了一张图来说明代理的一般用法,比较丑,请见谅

pc1,pc2,pc3通过pc4上的 代理访问Internet. 是这样一个过程,比如说pc1上的电脑访问 百度(需要将浏览器的代理服务器设置为pc4),请求会到达pc4,因为pc1浏览器的代理服务器 是pc4,pc4访问www.baidu.com,把获取到的网页内容返回给pc1,同样访问别的网站也是一样,pc2,pc3也同样是这样。

方向代理:顾名思义,就是反着来代理,我们假设有一个场景,公司有四台服务器,但是只有一个域名,baiduxx.com, 分别有一台news服务器,bbs服务器,img服务器,但是用户要通过域名来访问怎么办呢?请看如下的图

我们使用1台服务器来跑 Apache web 服务器 端口为80,客户端访问时如果用news.baidu.com访问,webserver就将请求转发到news 服务器处理,如果是bbs.baiduxx.com就转到bbs服务器处理,然后再交给apache并返回给用户。

原理就是这样,接下来我们来看具体 如果做反向代理,因为反向代理需要相应模块,请将httpd.conf中如下模块启用

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

以下是httpd.conf要添加的配置文件内容
NameVirtualHost *:80
<VirtualHost *:80>
ServerName news.baiduxx.com

ProxyPass / news://*
<Proxy news://*>
BalancerMember http://192.168.1.100:8888/
</Proxy>
</VirtualHost>


<VirtualHost *:80>
ServerName bbs.baiduxx.com
ProxyPass / bbs://*
<Proxy bbs://*>
BalancerMember http://192.168.0.101:9999/
</Proxy>
</VirtualHost>
这里简单解释一下手先通过NamVirtualHost 来设置支持NamedVirtualHost方式访问的地址,这里设置为*:80,代表侦听所有地址,然后在每个虚拟主机中设置相应的机器名, ServerName : news.baiduxx.com,这句代表将访问这个域名所有的请求都被这个 虚拟主机处理,然后通过代理将请求反向转发到内网的别的机器,当然这里也可以是本机的其它端口,如BalancerMember http://127.0.0.1:8888 可以看到请求是news://*,这个其实从url的标准来看这里news代表一个协议,这里其实是没关系的,可以为任意的,bb://*   ,转发的顺序为  ProxyPass指令将 / (所有请求)转化为 news://* , 然后Proxy指令捕获这个news://*并将其转到 http://192.168.0.100:8888/

参考文章:点击打开链接

内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性与自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性与灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线与关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环与小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控与操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性与可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件与PLC的专业的本科生、初级通信与联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境与MCGS组态平台进行程序高校毕业设计或调试与运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图与实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑与互锁机制,关注I/O分配与硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值