window环境下apache+tomcat 反向代理集群配置教程
来源:互联网 发布:客户数据库表格 编辑:程序博客网 时间:2024/05/16 07:36
window环境下apache+tomcat 反向代理集群配置教程
首先声明一下下:
由于做这件事情花费了不少时间,搜索了N篇博文,所以在此贴出对我帮助最大的两篇文章的地址,感谢开放的互联网๑乛◡乛๑(侵删)
http://www.cnblogs.com/f1194361820/p/5110956.html
http://blog.csdn.net/houliukuan/article/details/46532015
PS:今日闲来无事,研究下apache+tomcat集群,在网上搜了好多片文章,这些文章有些是使用jk的方式实现的,有些是使用反向代理实现的,种类繁多,
且文章的时间比较久远(可能是本人太菜了)走了好多弯路,遇到不少问题,所以这里写个总结或者说是教程,方便有需要的同行作为参考。
环境及软件要求:
tomcat8.5 解压缩绿色版,apache server 2.2(安装版),jdk1.8(配置略),win7_64位电脑
零、本文章主要分为三步完成:
一、安装配置两个不同端口的tomcat
二、安装配置Apache server
三、apache+tomcat反向代理集群配置
一、安装配置两个不同端口的tomcat
0.如果觉得我的排版和写法罗嗦 ,可以直接查看原作者文章 http://blog.csdn.net/houliukuan/article/details/46532015
1.去官网下载window平台的解压版的tomcat包
因为本人为64位win7系统http://tomcat.apache.org/download-80.cgi#8.5.16,下载后的文件为apache-tomcat-8.5.16-windows-x64.zip
2.将上边的apache-tomcat-8.5.16-window.zip解压后的文件夹复制两份,
分别命名为tomcat8-1和tomcat8-2
3.增加环境变量
增加环境变量 CATALINA_HOME8_1,值为tomcat8-1(第一个tomcat)的地址;
增加环境变量CATALINA_BASE8_1,值为tomcat8-1(第一个tomcat)的地址;
增加环境变量CATALINA_HOME8_2,值为tomcat8-2(第二个tomcat)的地址;
增加环境变量CATALINA_BASE8_2,值为tomcat8-2(第二个tomcat)的地址;
4.1.修改tomcat8-1(第一个tomcat)中的startup.bat:
把startup.bat中的所有的CATALINA_HOME字段替换成改为CATALINA_HOME8_1(可以直接用c+f全部替换)。
4.2 修改tomcat8-1(第一个tomcat)中的catalina.bat:
把catalina.bat中的CATALINA_HOME改为CATALINA_HOME8_1(可以直接用c+f全部替换),
把catalina.bat中的CATALINA_BASE全部改为CATALINA_BASE8_1(可以直接用c+f全部替换)。
5.修改tomcat8-2(第二个tomcat)中的startup.bat和catalina.bat:,
步骤同上一步,记得替换对应变量
6 修改tomcat8-1(第一个tomcat)的conf/server.xml文件:
<Server port="8005" shutdown="SHUTDOWN">#把8005端口改为8006
<Connector port="8080" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> #把8080修改为8081
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> #把8009端口改为8019
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">#添加jvmRoute="tomcat1",此处是为apache集群做准备
之后 ,在上边一行代码的下一行添加一下代码:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"><Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/></Cluster>
7.修改tomcat8-1(第一个tomcat)的的conf/context.xml:
将该文件的<Context> 修改为<Context distributable="true"> ,即新增属性distributable="true"
8.同6-7步骤,配置修改tomcat8-2(第二个tomcat)
配置修改tomcat8-2(第二个tomcat)的conf/server.xml和conf/context.xml,记得conf/server.xml的8080,8005,8009端口和jvmRoute属性不要和第一个tomcat重复
9.tomcat配置基本完成, 启动测试两个端口号的tomcat
可以分别点击各自的bin/startup.bat文件来启动,分别访问localhost:8081和localhost:8082(8081,8082端口号自己配置的自己知道)
二、安装配置Apache server
1.搜索安装apache server
下载window端apache http server安装文件 ,下载完成后一直点下一步完成安装(百度软件地址http://rj.baidu.com/soft/detail/14824.html?ald)
2.安装完成后,启动apache
在安装目录下点击启动/bin/ApacheMonitor.exe出现一下win窗口
点击start或者restart按钮,绿色图标表示启动成功 ,浏览器输入localhost:80 或者localhost,访问到默认内置的页面/htdocs/index.html即表示成功
3.如果无法正常启动 ,请检查电脑vc库是否完整.
三、apache+tomcat反向代理集群配置
1.经过以上步骤 ,两个不同的tomcat ,一个apache server已经可以分别独立运行了(如果不能 ,可以参考文章开头的链接或者自行搜索解决)
2.接下来就要对他们3个进行整合配置.(之后的所有步骤可以直接移步原文章http://www.cnblogs.com/f1194361820/p/5110956.html)
3.既然要使用代理方式访问肯定要有代理模块才行的。在${apacheserver}/config/httpd.conf中做如下配置:
3.1.放开注释 ,启用以下配置:
LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_balancer_module modules/mod_proxy_balancer.soLoadModule proxy_http_module modules/mod_proxy_http.so如果要配置AJP协议,要mod_proxy_ajp.so前面的#去掉。
3.2 在httpd.cof文件最后加入以下代码:
<IfModule proxy_balancer_module> # define a Load Balance Proxy based HTTP protocol <IfModule proxy_http_module> <Proxy balancer://myHttpLB> #examples修改为tomcat-webapp目录下实际项目的名称,18080为两个tomcat的对应端口(8081或者8082,自己改的自己知道0.0),route为对应tomcat的jvmRoute的属性值,loadfactor为权重值,可以平均分配 BalancerMember http://localhost:18080/examples loadfactor=80 route=worker1 BalancerMember http://localhost:28080/examples loadfactor=20 route=worker2 </Proxy> ProxyRequests off ProxyPass /examples balancer://myHttpLB/ stickySession=JSESSIONID nofailover=Off #examples修改为tomcat-webapp目录下实际项目的名称 ProxyPassReverse /examples balancer://myHttpLB/ </IfModule> # define a Load Balance Proxy based AJP protocol #<IfModule proxy_ajp_module>对应->如果要配置AJP协议,要mod_proxy_ajp.so前面的#去掉。这个配置话.. <IfModule proxy_http_module> 和<IfModule proxy_ajp_module>二选一就行 #<IfModule proxy_ajp_module> # <Proxy balancer://myAjpLB> # BalancerMember ajp://localhost:18080/examples loadfactor=80 route=worker1 # # BalancerMember ajp://localhost:28080/examples loadfactor=20 route=worker2 # </Proxy># ProxyRequests off # ProxyPass /examples balancer://myAjpLB/ stickySession=JSESSIONID nofailover=Off # ProxyPassReverse /examples balancer://myAjpLB/ # </IfModule></IfModule>
4.将web项目examples分别拷贝到俩个tomcat/webapps下 ,然后启动两个tomcat
5.ApacheMonitor.exe中启动apache
6.访问http://localhost/examples或者 http://localhost:80/examples
examples是两个tomcat/webapps下的应用,,所以肯定是可以访问到的。
7.session共享:
如果是javaweb项目 ,需要在项目的web.xml中的<web-app xxx=xxx> xxxx </web-app>节点之间加入标签 <distributable/> ,例如:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <distributable/></web-app>这样 ,即使一个tomcat宕机了 ,session信息也不会重置 ,用户也不会再次登陆
9.ps:如果谁有或者知道关于window解压版的apache http server教程 ,可以留言给我 ,多谢
- window环境下apache+tomcat 反向代理集群配置教程
- apache+tomcat的集群配置(window环境linux环境)
- linux环境下Apache+Tomcat集群配置
- 反向代理负载均衡(Apache + Tomcat集群)
- Windows 2003下配置Apache代理Tomcat集群
- Windows 2003下配置Apache代理Tomcat集群
- Windows 2003下配置Apache代理Tomcat集群
- Windows 2003下配置Apache代理Tomcat集群
- Ubuntu下 Nginx 反向代理 Apache、Tomcat
- apache+tomcat反向代理
- Apache反向代理结合Tomcat集群来实现负载均衡(四)、Apache反向代理
- 在Windows环境下的Tomcat + Apache配置整合,集群
- Apache+Tomcat集群实现反向代理负载均衡
- slackware下apache安装、反向代理配置
- tomcat+apache+mod_proxy代理模式配置集群
- Ubuntu 14.04下配置Ngin X反向代理连接TOMCAT集群
- window环境Nginx+Tomcat集群配置
- apache反向代理配置
- Intellij Idea 编译报错 javacTask: 源发行版 1.6 需要目标发行版 1.6
- android 点击图标,应用重新启动
- 串口CPU卡读写模块,串口银行卡读写模块,串口HCE读写模块
- RRDTOOL 学习
- 三层架构
- window环境下apache+tomcat 反向代理集群配置教程
- SpringMVC @RequestBody接收Json对象字符串
- Eclipse插件安装(在线和离线方式)
- linux下实现svn/maven自动拉取代码并发布
- MailBee.NET Objects接收电子邮件(POP3)教程三:POP3认证
- 矩阵乘法
- 对象
- 从leetcode 92.reverse-linked-list-ii 对链表的认识
- React Native加载图片详解