使用Apache 集群部署项目

项目最开始的时候开发的单体项目,最终部署的时候需求是需要考虑集群部署,经过网上查阅资料 简化整理最终形成现在的操作说明,由于项目结束时间比较久以前是查阅资料自己简单整理了doc ,整理桌面的时候才想着记录一下.

一 文件准备

1.下载apache-server-httpd

   下载地址 https://www.apachehaus.com/cgi-bin/download.plx

   注意:电脑必须安装VC14/VC15 否则无法使用

2.下载tomcat  略

3.下载mod_jk.so 版本需要与apache-server 版本一致  

  下载地址  http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/

二 Httpd配置

  上述文件准备完毕后开始配置httpd

  常用httpd命令:

   httpd.exe -k install 安装apache,采用默认服务名

   httpd.exe -k uninstall 卸载

   httpd.exe -k install -n "apache24"   可以指定安装的服务名

   httpd.exe -k uninstall -n "Apache24"  卸载指定名称的apache服务

   net start apache24 启动windows服务

   net stop apache24 停止服务

   关键词:ServerAdmin admin@example.com这是Apache管理员Email地址,改不改无所谓。

   关键词:#ServerNamewww.example.com:80这是Apache的服务器地址,这个地方必须把前面的”#“去掉,把”www.example.com“改成”localhost“或127.0.0.1 或者当前IP。

配置 Listen 监听端口  Listen 8009 端口可自行修改

  只要双击httpd.exe后,无法保持黑窗口状态,即秒关闭或停一会消失都是conf/httpd.conf配置有问题

   解决办法:  

  ① 则打开命令窗口 执行httpd -t  会检查conf/httpd.conf配置是否正确.根据返回结果检查相关的配置文件填写是否正确

  ② 检查版本是否与当前操作系统匹配,比如64位系统运行32位软件就会失败.

  ③ 请检查文件路径是否存在中文

  ④ 暂时没有碰到其他问题 , 如果有请百度.

 三 mod_jk.so配置

将下载好的mod_jk.so放到{apache_home}/modules /下

修改httpd.conf,在其末尾追加下面一句话

include conf/mod_jk.conf

四配置mod_jk.conf

http.conf 同目录下,创建 mod_jk.conf 文件,内容如下:

#以下为tomcat集成配置部分

LoadModule jk_module modules/mod_jk.so

#指定 workers.properties文件路径,红色部分是接下来要在与http.conf文件同目录的文件名

JkWorkersFile conf/workers.properties

# Where to put jk logs

JkLogFile logs/mod_jk.log

# Set the jk log level [debug/error/info]

JkLogLevel info

# Select the log format

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions indicate to send SSL KEY SIZE,

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format

JkRequestLogFormat "%w %V %T"

#指定那些请求交给tomcat处理,"controller "为在workers.propertise里指定的负载分配控制器_JkMount /* controller

#这里应该注意一下.红色部分地址要放入发布项目所需要的资源文件.like some photos and js and css...等.项目结构必须一样.

DocumentRoot "D:/Apache24/htdocs "

JkMount /*.jsp controller

JkMount /*.do controller

JkMount /servlet/* controller

#关掉主机Lookup,如果为on,很影响性能,可以有10多秒钟的延迟。

HostnameLookups Off

 

五 配置workers.properties

http.conf 同目录下,创建workers.properties文件 ,内容如下:

#server

worker.list = controller

#========tomcat1========

worker.tomcat1.port=3001

worker.tomcat1.host=192.168.1.110

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor = 1

#========tomcat2========

worker.tomcat2.port=3002

worker.tomcat2.host=192.168.1.110

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor = 1

#========controller,负载均衡控制器========

worker.controller.type=lb

worker.controller.balanced_workers=tomcat1,tomcat2

worker.controller.sticky_session=false

worker.controller.sticky_session_force=1

#worker.controller.sticky_session=1

六配置tomcat

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

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

此处需要新增 jvmRoute =”tomcat1” 

重点注意此处port端口与jvmRoute要跟workers.properties中保持一致否则无法启动

除此之外 其余端口正常配置就行.多个tomcat的时候 端口不可重复,另外如果在不同服务器需要注意相关地方的ip地址

七 项目中web.xml配置

<web-app>标签下增加<distributable/>标签,添加在<display-name>下面 

八 测试

自己创建两个简单的web项目在各自index.jsp页面写一些文字  根据七 中的要求配置好之后 放入各自tomcat中

启动访问  http:// 192.168.1.110:8009/jiqun/index.jsp  

 

刷新后sessionid会不停变化.下面进行session共享配置

九.session共享

   Apache httpd Session共享中有复制 粘性session和复制session两种 具体区别百度

   在各自tomcat conf/server.xml中 找到

<!--<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> -->

  替换为

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">

        <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"/> -->

        <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"

                  tempDir="/tmp/war-temp/"

                  deployDir="/tmp/war-deploy/"

                  watchDir="/tmp/war-listen/"

                  watchEnabled="false"/>

        <!--<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> -->

        <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>

     </Cluster>

注意 4000端口 如果部署在同一个服务器上  两个tomcat中端口需要修改一下

重启tomcat  进行测试  刷新后sessionid不变 但是能看到实际的项目在变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值