Window(64位)Apache+Tomcat集群部署JK方式-程序员宅基地

技术标签: TOMCAT  WINDOW64  集群  APACHE  

我选择在本机和虚拟机各放置一个tomcat,Apache部署在本机

由于很多都是版本限制问题,我就在mod_jk这边卡了很久,所以版本需对应好

文章结尾会附有所有文件下载路径

一、所需软件

1、httpd-2.4.16-win64-VC14.zip

2、apache-tomcat-7.0.92-windows-x64.zip

3、JDK7

二、开始部署

JDK部署就不说了,因为是之前已经部署好的,如需部署请另行百度

1、tomcat部署

下载好tomcat之后,在webapps下添加一个test文件,在里面添加一个test.jsp文件

<html>
<head>
  <title>helloapp</title>
</head>
<body>
<%
System.out.println("call test.jsp");
%>   
SessionID: <%=session.getId() %>  
</body>
</html>

修改conf文件夹下的server.xml文件

(1)配置http监听端口,这里端口设为8079,该步骤非必要,只要不冲突就行了。

<Connector port="8079" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

(2)配置AJP监听端口,这里端口设为8077,该步骤非必要,只要不冲突就行了。

<Connector port="8077" protocol="AJP/1.3" redirectPort="8443" />

(3)配置服务器标识,这里标识名配置为:worker2,添加jvmRoute="worker2",该步骤必须。

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

在Engine节点启用集群配置,只需去掉Cluster节点前的注释就行了,该步骤必须,配置了集群才能实现Session复制,如果只有一个集群,只 按我下边的配置就行了,如果多个集群,则不能按此配置,tomcat服务器内的帮助文档/docs/cluster-howto.html,/docs /config/cluster.html有介绍,需要的可以参考下。

<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2">
   <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 

要实现session复制,还需要在context.xml添加属性distributable="true",如下:

<Context distributable="true">

如果不想在context.xml中添加distributable="true",还有另一方法是在应用程序的web.xml中添加<distributeable/>,不过这方法我没有测试。

将修改好的文件分别放到本地和虚拟机中,一个保持不变,一个修改server.xml为

<Connector port="8078" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker3">

分别启动并分别对应访问http://127.0.0.1:8078和http://127.0.0.1:8079,看是否tomcat部署成功。

2、apache部署

解压之后httpd-2.4.16-win64-VC14.zip,如果放到C盘则无需改动,可以直接进行程序启动

如果放到其它盘内,则修改conf文件夹下httpd.conf文件的第37行

ServerRoot "c:/Apache24"

修改为你自己对应的路径

然后进入bin文件夹下,双击httpd.exe启动

如果报错“无法启动此程序,因为计算机中丢失xxx。尝试重新安装该程序以解决此问题。”

则下载vc_redist.x64.exe文件进行安装,如果这个安装出错,那么不好意思,应该是你系统不符合,这个应该得更新系统了,我3台电脑,2台能安装,有一台怎么都安装不了,该问题未进行解决,用能用的电脑去实现功能了。

正常安装完成之后应该就能vc_redist.x64.exe启动了,启动之后,访问http://127.0.0.1:80,会出现It Works!提示,表示Apache安装成功。接下来开始Apache配置修改。

首先

下载mod_jk-1.2.31-httpd-2.2.3.so,请下载合适的mod_jk版本,改名为mod_jk.so放进modules文件夹内
修改conf/httpd.conf配置

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
JkMount  /*.do loadbalancer
JkMount  /*.jsp loadbalancer

增加conf/workers.properties文件,添加内容

worker.list=loadbalancer
worker.worker2.port=8077
worker.worker2.host=108.88.3.105
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.worker3.port=9009
worker.worker3.host=127.0.0.1
worker.worker3.type=ajp13
worker.worker3.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=worker2,worker3
worker.loadbalancer.sticky_session=true

配置完成任务,访问http://127.0.0.1:80/test/test.jsp,检查是否能正常访问。

如果报错

The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log.


1、访问权限开到最大

1、打开apache的配置文件
2、在apache配置文件httpd.conf中搜索
AllowOverride None
然后改为AllowOverride All

2、在httpd.conf中加入

Jkmount /test/* loadbalancer

3、打开重写模块

1、打开apache的配置文件
2、去掉LoadModule rewrite_module modules/mod_rewrite.so 的注释
3、重启apache

 

vc_redist.x64:https://download.csdn.net/download/shadowki/10909261

apache-tomcat-7.0.92:https://download.csdn.net/download/shadowki/10909269

mod_jk(64):https://download.csdn.net/download/shadowki/10909278

Apache(64位):https://download.csdn.net/download/shadowki/10909308

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ShadowKI/article/details/86239166

智能推荐

前端开发之vue-grid-layout的使用和实例-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏34次。vue-grid-layout的使用、实例、遇到的问题和解决方案_vue-grid-layout

Power Apps-上传附件控件_powerapps点击按钮上传附件-程序员宅基地

文章浏览阅读218次。然后连接一个数据源,就会在下面自动产生一个添加附件的组件。把这个控件复制粘贴到页面里,就可以单独使用来上传了。插入一个“编辑”窗体。_powerapps点击按钮上传附件

C++ 面向对象(Object-Oriented)的特征 & 构造函数& 析构函数_"object(cnofd[\"ofdrender\"])十条"-程序员宅基地

文章浏览阅读264次。(1) Abstraction (抽象)(2) Polymorphism (多态)(3) Inheritance (继承)(4) Encapsulation (封装)_"object(cnofd[\"ofdrender\"])十条"

修改node_modules源码,并保存,使用patch-package打补丁,git提交代码后,所有人可以用到修改后的_修改 node_modules-程序员宅基地

文章浏览阅读133次。删除node_modules,重新npm install看是否成功。在 package.json 文件中的 scripts 中加入。修改你的第三方库的bug等。然后目录会多出一个目录文件。_修改 node_modules

【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure-程序员宅基地

文章浏览阅读883次。【代码】【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure

整理5个优秀的微信小程序开源项目_微信小程序开源模板-程序员宅基地

文章浏览阅读1w次,点赞13次,收藏97次。整理5个优秀的微信小程序开源项目。收集了微信小程序开发过程中会使用到的资料、问题以及第三方组件库。_微信小程序开源模板

随便推点

Centos7最简搭建NFS服务器_centos7 搭建nfs server-程序员宅基地

文章浏览阅读128次。Centos7最简搭建NFS服务器_centos7 搭建nfs server

Springboot整合Mybatis-Plus使用总结(mybatis 坑补充)_mybaitis-plus ruledataobjectattributemapper' and '-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏3次。前言mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。..._mybaitis-plus ruledataobjectattributemapper' and 'com.picc.rule.management.d

EECE 1080C / Programming for ECESummer 2022 Laboratory 4: Global Functions Practice_eece1080c-程序员宅基地

文章浏览阅读325次。EECE 1080C / Programming for ECESummer 2022Laboratory 4: Global Functions PracticePlagiarism will not be tolerated:Topics covered:function creation and call statements (emphasis on global functions)Objective:To practice program development b_eece1080c

洛谷p4777 【模板】扩展中国剩余定理-程序员宅基地

文章浏览阅读53次。被同机房早就1年前就学过的东西我现在才学,wtcl。设要求的数为\(x\)。设当前处理到第\(k\)个同余式,设\(M = LCM ^ {k - 1} _ {i - 1}\) ,前\(k - 1\)个的通解就是\(x + i * M\)。那么其实第\(k\)个来说,其实就是求一个\(y\)使得\(x + y * M ≡ a_k(mod b_k)\)转化一下就是\(y * M ...

android 退出应用没有走ondestory方法,[Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?...-程序员宅基地

文章浏览阅读1.3k次。首先,问题是如何出现的?晚上复查代码,发现一个activity没有调用自己的ondestroy方法我表示非常的费解,于是我检查了下代码。发现再finish代码之后接了如下代码finish();System.exit(0);//这就是罪魁祸首为什么这样写会出现问题System.exit(0);////看一下函数的原型public static void exit (int code)//Added ..._android 手动杀死app,activity不执行ondestroy

SylixOS快问快答_select函数 导致堆栈溢出 sylixos-程序员宅基地

文章浏览阅读894次。Q: SylixOS 版权是什么形式, 是否分为<开发版税>和<运行时版税>.A: SylixOS 是开源并免费的操作系统, 支持 BSD/GPL 协议(GPL 版本暂未确定). 没有任何的运行时版税. 您可以用她来做任何 您喜欢做的项目. 也可以修改 SylixOS 的源代码, 不需要支付任何费用. 当然笔者希望您可以将使用 SylixOS 开发的项目 (不需要开源)或对 SylixOS 源码的修改及时告知笔者.需要指出: SylixOS 本身仅是笔者用来提升自己水平而开发的_select函数 导致堆栈溢出 sylixos

推荐文章

热门文章

相关标签