windows apache 负载均衡配置 Tomcat集群配置
2019独角兽企业重金招聘Python工程师标准>>>
1.安装
exe可执行文件的安装方式:http://jingyan.baidu.com/article/ed15cb1b73b3071be269816d.html
解压缩包的安装方式: win+r --> cmd --> 打开dos界面,进入到Apache\bin目录下执行 httpd.exe -k install -n "apache2.2" 。 执行完成 Apache服务安装完毕。apache2.2 为服务的名称
1.1 查看服务:win+r -->services.msc
1.2 dos中开启和关闭服务
启动服务遇到问题:右击我的电脑-->管理-->事件查看器-->找到Apache Service-->右键-->查看事件的所有实例
由于Apache的docs log 等路径都的 /Apache/*** ,但是我的服务是放在了自己建立的文件夹下,所以服务启动的时候找不到这些文件。大部分问题是这些。
1.3 服务安装成功,浏览器访问 http://localhost/
显示如上界面,Apache安装成功。
1.负载均衡配置
配置httpd.conf 文件
1.1 去掉注释块
#提供HTTP/1.1的代理/网关功能支持
LoadModule proxy_module modules/mod_proxy.so
#mod_proxy的扩展,提供Apache JServ Protocol支持
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#mod_proxy的扩展,提供负载均衡支持
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#mod_proxy的扩展,提供对处理HTTP CONNECT方法的支持
LoadModule proxy_connect_module modules/mod_proxy_connect.so
#mod_proxy的FTP支持模块
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
# mod_proxy的HTTP支持模块
LoadModule proxy_http_module modules/mod_proxy_http.so
1.2 将虚拟主机的注释去掉,将httpd-vhosts.conf 引入。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
httpd-vhosts.conf文件添加:
<VirtualHost *:80>ServerAdmin abc@163.comproxyRequests offServerName abc.comServerAlias www.abc.comProxyPass /resource!ProxyPass /req balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=OnProxyPassReverse /req balancer://cluster/ProxySet lbmethod=bytraffic
</VirtualHost>
<proxy balancer://cluster>BalancerMember ajp://12.34.56.78:8011 loadfactor=1 route=tomcat1BalancerMember ajp://12.34.56.78:8012 loadfactor=1 route=tomcat2BalancerMember ajp://12.34.56.78:8013 loadfactor=1 route=tomcat3BalancerMember ajp://12.34.56.78:8014 loadfactor=1 route=tomcat4 status=+H
</proxy>
解释:其中ProxyPass /resource! 表示/resource 开头的请求不会转发给Tomcat,而是作为静态资源在Apache的resource目录下寻找资源文件。而反向代理将所有的/req 请求都转发给名叫cluster的balancer。 而这个balancer有四个Tomcat成员。 status=+H 表示热部署。
ProxySet lbmethod=bytraffic 设置负载均衡的策略
lbmethod可能的取值有:
lbmethod=byrequests 按照请求次数均衡(默认)
lbmethod=bytraffic 按照流量均衡
lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
stickySession=JSESSIONID表示开启粘性Session。意思是如果第一次请求分到了tomcat1,那么这个用户的后续请求,都会分配给tomcat1这个服务。
然后在Apache配置故障转移(nofailover=On)
如果tomcat1服务宕机,那么Apache会将请求提交当其它服务器,由于后台Tomcat服务器做了Session共享(也就是服务器Session复制),所以用户的Session并没有丢失。
2.Tomcat服务集群配置
Apache配置了四台服务的负载均衡,对应的Tomcat服务器也需要四台。以Tomcat6.x为例
2.1 配置Server port 在tomcat-6.x\conf\server.xml文件中找到
<Server port="8005" shutdown="SHUTDOWN">
<!--修改成: -->
<Server port="8006" shutdown="SHUTDOWN">
并将其余3个Tomcat的Server port分别修改成8007,8008,8009。
2.2 配置Connector port 在tomcat-6.x\conf\server.xml文件中找到
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<!--修改成:-->
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<!--并将其余3个Tomcat的port分别修改成8082,8083,8084-->
2.3 配置Apache和Tomcat通讯端口,在tomcat-6.x\conf\server.xml文件中找到
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<!--修改成:-->
<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />
<!--并将其余3个Tomcat的port分别修改成8012,8013,8014 -->
2.3 是apache和tomcat链接的关键,前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡,上面的 port="8011" 就是Apache连接Tomcat的端口。
回顾一下httpd.conf配置中的
<proxy balancer://cluster>BalancerMember ajp://12.34.56.78:8011 loadfactor=1 route=tomcat1BalancerMember ajp://12.34.56.78:8012 loadfactor=1 route=tomcat2BalancerMember ajp://12.34.56.78:8013 loadfactor=1 route=tomcat3BalancerMember ajp://12.34.56.78:8014 loadfactor=1 route=tomcat4
</proxy>
Tomcat中的端口要和“ajp://12.34.56.78:XXXX”后面端口一致。
2.4 配置Engine ,在tomcat-6.x\conf\server.xml文件中找到
<Engine name="Catalina" defaultHost="localhost">,
<!--修改成:-->
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">
<!--并将其余3个Tomcat的jvmRoute分别修改成:-->
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat2">
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat3">
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat4">
回顾一下httpd.conf配置中的
<proxy balancer://cluster>BalancerMember ajp://12.34.56.78:8011 loadfactor=1 route=tomcat1BalancerMember ajp://12.34.56.78:8012 loadfactor=1 route=tomcat2BalancerMember ajp://12.34.56.78:8013 loadfactor=1 route=tomcat3BalancerMember ajp://12.34.56.78:8014 loadfactor=1 route=tomcat4
</proxy>
Tomcat中的jvmRoute="tomcatx"要和“route=tomcatx”中的命名一致。
2.5 配置Cluster ,在tomcat-6.x\conf\server.xml文件中找到
<!--在注释行的下面添加:-->
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6"><Manager className="org.apache.catalina.ha.session.BackupManager"expireSessionsOnShutdown="false"notifyListenersOnReplication="true"mapSendOptions="6"/><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="5001"selectorTimeout="100"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"/><Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/></Channel><Valve className="org.apache.catalina.ha.tcp.ReplicationValve"filter=".*/.gif;.*/.js;.*/.jpg;.*/.png;.*/.htm;.*/.html;.*/.css;.*/.txt;"/><ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
其余3个Tomcat都要做相同的配置,注意每个Tomcat之间的差别是<Receiver>标签下面的port值不一样,这里是5001,其余3个Tomcat中分别是5002,5003,5004
3. Tomcat集群要解决的问题
3.1 Session共享
1. 所有session中的对象可以序列化,实现 java.io.Serializable接口。
2. 确保你部署文件中的web.xml有<distributable/>元素(其父元素为</web-app>),或者设置你的<Context distributable="true" />。
3. 当使用多台机器时,要保证不同机器时间的同步。
4. 确保你的loadbalancer是sticky session 模式。
转载于:https://my.oschina.net/u/2433960/blog/900653
windows apache 负载均衡配置 Tomcat集群配置相关推荐
- nginx负载均衡,服务器集群配置,服务器挂机自动切换
1. 首先打开nginx/conf/nginx.conf修改如下配置 http {#在http中添加下面内容#隐藏 Nginx 的版本号,提高安全性. server_tokens off;#指令指定允 ...
- Nginx+Memcached+Tomcat集群配置实践(Sticky Session)
准备工作 创建一个简单的web应用,名为session.其中有两个页面,分别如下所示: 页面login.jsp [html] view plaincopy <%@ page language=& ...
- Nginx以及通过Nginx实现tomcat集群配置与负载均衡
Nginx简介 启动,停止,和重新加载配置文件命令 Nginx功能 正向代理和反向代理的区别 反向代理 负载均衡 1.RR(默认) 2.权重 3.ip_hash 4.fair(第三方) 5.url_h ...
- tomcat7+nginx+memcached 配置tomcat 集群以及负载均衡
首先:配置tomcat集群 nginx+ tomcat7 1 安装jdk (可以选择6或者7都可以) 此处不用多说. 2 下载nginx-1.2.5 (下载附件) 3 下载 memcached(下载附 ...
- window xp Apache与Tomcat集群配置--转载
转载地址:http://www.cnblogs.com/obullxl/archive/2011/06/09/apache-tomcat-cluster-config.html 一. 环境说明 Win ...
- Apache + Tomcat集群配置详解(1)
Apache + Tomcat集群配置详解(1) 一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl ...
- windows下tomcat集群配置(两种方法)
两种方法只是在配置上不同原理一样,因为apache2.X后其自身集成了mod_jk功能,相对于1.3版本,不需要再进行繁琐的worker.properties配置,配置过程大幅简化. 一.软件需求 操 ...
- linux系统下对网站实施负载均衡+高可用集群需要考虑的几点
随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实 ...
- 「mysql优化专题」高可用性、负载均衡的mysql集群解决方案(12)
不可避免的是,使用MySQL时随着时间的增长,用户量以及数据量的逐渐增加,访问量更是剧增,最终将会使MySQL达到某个瓶颈,那么MySQL的性能将会大大降低.怎么办?前面已经讲过十一篇优化方案,接下来 ...
最新文章
- Gym 101845(2018 ACM-ICPC, Universidad Nacional de Colombia Programming Contest)
- 机器学习的前沿发展与应用分享
- 安装python sklearn经验总结
- HTML5的Web存储
- 省A类竞赛二等奖--村先游项目VUE前端重构
- mongodb默认的用户名密码_Linux如何安装、运行MongoDB教程
- Java实现简单图书管理系统
- java armeabi_Android中的armeabi、armeabi-v7a、arm64-v8a及x86的详解
- Visio Premium 2010密钥+破解激活方法
- 获取115网盘文件列表
- STM32学习笔记——HC05
- f(x)的泰勒(Taylor)展开式
- c语言编程三次方程,c语言求三次方程的根程序设计
- dnf服务器维护2018,2018年更新dnf游戏登陆不上 | 手游网游页游攻略大全
- Linux已挂载的硬盘无法访问
- symbian s60 删除模拟器上的程序
- 银河麒麟禁止抓屏printScreen
- linux下中文输入法的安装(解决菜单栏输入法图标消失问题)
- 【wpf】Page的Unloaded事件
- pkg-config --libs --cflags