zoukankan      html  css  js  c++  java
  • Apache+Tomcat+jk windows环境下的集群部署

    记一次在Windows服务器上搭建apatch+tomcat+jk的集群搭建过程,其中也遇到了很多问题,总结一下。

    一、准备工作

      1.apache-tomcat-7.0.88

      2.Apche httpd-2.4.23-x64.zip  

      3.tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip   

      4.vcredist_x64.exe

    mod_jk也叫 JK,这是一款 Apache/IIS 用来连接后台Tomcat的连接器,支持集群和负载均衡。     

    注:httpd后面的版本号要与apache httpd的版本号对应,不然apache会报cannot load mod_jk.so into server

    链接:https://pan.baidu.com/s/1rRjzr__jXky73mYH1ADv6Q     msje

    二、开始搭建

      1.安装Apache httpd-2.4.23-x64

        在安装Apache2.4之前先检测有没有安装Microsoft visual vc++ 2008,因为Apache2.4只支持2008及以上的版本,如果没有,使用安装软件vcredist_x64.exe,按照默认安装即可。

        1).解压Apache httpd-2.4.23-x64.zip文件到要安装的目录。

        2).cmd,打开命令提示符窗口,进入Apache解压文件路径bin目录下

        3).在bin目录下输入httpd -k install

          i.如果报以下问题,意思是程序默认安装路径和配置文件的路径不一致。

          打开conf/httpd.conf文件,找到Define SRVROOT,后面接上你的Apache程序目录。改好之后重新install一下就ok了。

          

           

        4).开启服务 ,通过命令,也可以通过服务窗口启动

          

          如果开启服务时报80端口被占用错误:

            在cmd中输入netstat –ano命令,发现80端口被一个PID为4的服务所占用,打开任务管理器,发现PID为4的进程为系统进程,其描述信息为NT Kernel & System,在服务里面又找不到PID为4的服务,所以没法停掉服务。

            在网上找了半天,最终出现,是因为之前装过SQL SERVER 2008的原因,因为它启动了SQL Server Reporting Services (MYSQLSERVER)服务,造成端口占用。打开windows服务窗口,找到它并停止并将它设为禁止。

            这里也可以通过修改httpd.conf文件中Listen:80来修改端口号

            这里是我遇到的问,也有可能是其它原因造成80端口被占用,不做阐述了 。

            

        5).在浏览器输入localhost,打开下面页面就算成功了

        

        6).修改mpm模块配置

         a) .按安装目录打开D:Program FilesApache Software FoundationApache2.2confhttpd.conf文件,将“#Include conf/extra/httpd-mpm.conf”和“#Include conf/extra/httpd-default.conf”前面的”#”号去掉,如下所示:

          # Server-pool management (MPM specific)

          Include conf/extra/httpd-mpm.conf

          # Various default settings

          Include conf/extra/httpd-default.conf

          注:引进多路处理模块

        b). 按安装目录打开D:Program FilesApache Software FoundationApache2.2confextra httpd-mpm.conf 文件,修改以下参数:

          <IfModule mpm_winnt_module>

              ThreadsPerChild  2000

              MaxRequestsPerChild    100000

          </IfModule>

          注:设置多路处理模块的进程线程数

        c). 按安装目录打开D:Program FilesApache Software FoundationApache2.2confextra httpd-default.conf文件,修改以下参数:

          Timeout 30

      2.解压tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip文件,将文件夹中的mod_jk.os文件复制到Apache安装目录下的 modules目录下

      3.配置Apache和mod_jk

        1).在Apache安装目录下打开conf/httpd.conf文件,在文件最后添加Include conf/mod-jk.conf 

        2).在conf下新建配置文件mod-jk.conf

          LoadModule jk_module modules/mod_jk.so #加载模块  

          JkWorkersFile conf/workers.properties #负载均衡配置文件  

          JkMount /* controller #这里是所有请求都给Tomcat处理 

        3).在conf下新建workers.properties文件

     1 #server
     2 worker.list = controller
     3 #========tomcat1========
     4 worker.tomcat1.port=11009
     5 worker.tomcat1.host=192.169.1.218
     6 worker.tomcat1.type=ajp13
     7 worker.tomcat1.lbfactor = 1
     8 #========tomcat2========
     9 worker.tomcat2.port=12009
    10 worker.tomcat2.host=192.169.1.63
    11 worker.tomcat2.type=ajp13
    12 worker.tomcat2.lbfactor = 1
    13  
    14 #========controller,负载均衡控制器========
    15 worker.controller.type=lb
    16 worker.controller.balanced_workers=tomcat1,tomcat2
    17 worker.controller.sticky_session=true
    18 worker.controller.sticky_session_force=false
    19 
    20 #注释:这里可以配置任意多个Tomcat,此处配置了2个Tomat服务器。
    21 #worker.tomcat1.port=11009   #须和tomcat下server.xml配置文件中的ajp13 端口号对应。
    22 #worker.tomcat1.host=192.169.1.218 #tomcat的主机地址,如不为本机,请填写ip地址。
    23 #Worker.tomcat1.type=ajp13    #Apache、tomcat集群采用的AJP/1.3通信协议。
    24 #worker.tomcat1.lbfactor = 1  #server的加权比重,值越高,分得的请求越多。

       4.配置tomcat,在这里很简单,我这里是下载的安装版的,不是解压版的,一直下一步,当到下图的时候就需要简单配置一下了。多个配置也是一样,只要与worker.properties对应上就ok

        

        1修改tomcat配置文件tomcat安装目录下的conf/context.xml文件把<Context>修改为:<Context xmlBlockExternal="false"> 

        

      2修改tomcatconfcatalina.properties文件    tomcat.util.scan.DefaultJarScanner.jarsToSkip节点增加db2jcc.jar
        

      3修改server.xml

        1:AJP13的connector的port和jvmRoute名称和workers.properties中配置对应。8080是tomcat1的端口。<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 这一句原本是注释的。需要去掉注释。

        

        2:在“<!Connector port="11009" protocol="AJP/1.3" redirectPort="8443" />”中增加如下图,

        

    三、测试

      1.修改tomcat1和tomcat2安装目录下的workapp下的ROOT中的index.jsp,在<body>标签加一行<h1>Tomcat_1</h1>,在tomcat2中加一行<h1>Tomcat_2</h1>。为了方便查看当前使用的是哪个Tomcat。

      2.依次启动Tomcat1和Tomcat2,然后重启一下apache服务。打开浏览器访部localhost,刷新,会一直在两个tomcat中间变换。

      

      在测试的时候也遇到一个很坑的问题

        问题:刚重启apache服务的时候访问没有问题,但当过了一段时间后或者多台机器访问时,浏览器一直处在加载状态,页面加载不出来,并且也没有提示错误页。apache处于假死状态。

        解决:

        

  • 相关阅读:
    poj 2417 Discrete Logging
    洛谷 P2886 [USACO07NOV]牛继电器Cow Relays
    bzoj 3232 圈地游戏——0/1分数规划(或网络流)
    bzoj 4753 [Jsoi2016]最佳团体——0/1分数规划
    bzoj 5281 [Usaco2018 Open]Talent Show——0/1分数规划
    CF 949D Curfew——贪心(思路!!!)
    bzoj 3872 [Poi2014]Ant colony——二分答案
    bzoj 1731 [Usaco2005 dec]Layout 排队布局——差分约束
    洛谷 1344 [USACO4.4]追查坏牛奶Pollutant Control——最大流
    洛谷 1262 间谍网络——缩点+拓扑
  • 原文地址:https://www.cnblogs.com/EmilZs/p/10748971.html
Copyright © 2011-2022 走看看