• Windows Server 2008 R2环境下Apache2.4+Tomcat8配置


    安装步骤

    1. 安装配置JDK
    2. 安装配置Apache
    3. 安装配置Tomcat
    4. 启动服务并测试

    一、Apache安装与配置

    1、Apache解压
    在D盘根目录下建立一个文件夹Apache Group,将httpd-2.4.38-win64-VC15.zip解压到此文件夹下。

    2、Apache安装与卸载
    以管理员身份运行cmd,将目录移动到D:Apache GroupApache24in下,安装运行:

    httpd -k install -n Apache2.4

    安装完成,右键我的电脑,管理,服务,可以看到多了一个名为Apache2.4的服务。
    卸载运行

    httpd -k uninstall -n Apache2.4

    卸载完成后,服务中Apache2.4就会消失。

    3、配置httpd.conf
    打开Apache GroupApache24conf下的httpd.conf主配置文件进行配置,修改前将其备份一下,防止配置错误解决不掉的时候恢复。

    Define SRVROOT "/Apache24"    (37行)
    ServerRoot "${SRVROOT}"      (39行)

    更改为安装目录

    Define SRVROOT "D:Apache GroupApache24"
    ServerRoot "${SRVROOT}"

    默认是80端口的,如果80端口被占用,则无法安装成功
    用一下命令可以查询80端口被哪个进程id占用,netstat -aon | findstr "80"
    再用一下命令查询该进程id是代表哪个进程,tasklist | findstr "PID号"

    或者直接改Apache的端口号

    Listen 8888    (60行)

    httpd.conf最后一行加入

    Include conf/mod_jk.conf

    4、配置mod_jk.conf
    将tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip解压,并找到其中mod_jf.so文件,将其放至Apache GroupApache24modules文件夹中
    在Apache GroupApache24conf目录下建立mod_jk.conf文件,并打开,将其配置为以下代码。

    #加载mod_jk Module
    LoadModule jk_module modules/mod_jk.so
    #指定 workers.properties文件路径
    JkWorkersFile conf/workers.properties
    #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
    JkMount /*.do controller
    JkMount /*WEB-INF controller
    JkMount /*j_spring_security_check controller
    JkMount /*.action controller
    JkMount /servlet/* controller
    JkMount /*.jsp controller
    JkMount /*.do controller
    JkMount /*.action controller
    JkMount /* controller


    5、配置workers.properties
    官方文档:http://tomcat.apache.org/connectors-doc/reference/workers.html

    在Apache GroupApache24conf目录下建立workers.properties文件

    worker.list = controller,tomcat8-1,tomcat8-2 #server 列表
    #worker.list = tomcat8-1
    #========tomcat8-1========
    worker.tomcat8-1.port=9010   #ajp13 端口号,在tomcat下server.xml配置,默认8009
    worker.tomcat8-1.host=localhost    #tomcat的主机地址,如不为本机,请填写ip地址
    worker.tomcat8-1.type=ajp13
    worker.tomcat8-1.lbfactor = 1      #server的加权比重,值越高,分得的请求越多

    #========tomcat8-2========
    worker.tomcat8-2.port=6010
    worker.tomcat8-2.host=localhost
    worker.tomcat8-2.type=ajp13
    worker.tomcat8-2.lbfactor = 1
    #========controller,负载均衡控制器========
    worker.controller.type=lb
    worker.controller.balanced_workers=tomcat8-1,tomcat8-2     #指定分担请求的tomcat
    worker.controller.sticky_session=1    #回话是否有粘性,false表示无粘性,同一个回话的请求会到不同的tomcat中处理
    worker.controller.sticky_session_force=false    #当一个节点蹦了,如果设值为true,那么服务器返回500错误给客户端,如果设值为false,则转发给其他的tomcat,但是会丢失回话信息


    负载均衡器也可配置为,下方配置为一个用户的所有请求由一个tomcat处理,上方配置为用户请求会进到不同的tomcat

    Tomcat负载均衡原理:http://blog.csdn.net/fubin5115/article/details/78078166

    #========controller,负载均衡控制器========
    worker.controller.type=lb
    worker.controller.balanced_workers=tomcat1,tomcat2
    worker.controller.sticky_session=1

    如需增加Tomcat,在workers.properties中增加即可

    6、Apache调优(未亲测)
    放开httpd.conf里面的Include conf/extra/httpd-mpm.conf一句。
    把confextra目录下的httpd-mpm.conf文件里的参数改为:

    <IfModule mpm_winnt_module>
    ThreadsPerChild 2000
    MaxRequestsPerChild 2000
    </IfModule>

    二、Tomcat安装与配置

    1、Tomcat安装
    将apache-tomcat-8.5.34-windows-x64.zip解压到Apache Group目录下
    在相同目录下复制一份,命名为tomcat8-1,tomcat8-2
    2、Tomcat配置
    分别配置conf/server.xml
    (1)修改shutdown端口,tomcat1改为9015,tomcat2改为8015

    <Server port="8005" shutdown="SHUTDOWN">

    (2)修改请求端口,初始代码:

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

    tomcat1修改为:

    <Connector port="9110" protocol="org.apache.coyote.http11.Http11NioProtocol"
    connectionTimeout="20000"
    maxThreads="4000"
    minSpareThreads="1000"
    maxSpareThreads="2000"
    redirectPort="8443"
    acceptCount="2000"
    disableUploadTimeout="true"
    enableLookups="false"
    URIEncoding="UTF-8" />

    tomcat2将端口改为8110
    (3)修改AJP端口号,同workers.properties中配置的port,tomcat1改为9019,tomcat2改为8019

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

    (4)修改Engine,tomcat1在末尾加 jvmRoute=”tomcat1”,tomcat2在末尾加 jvmRoute=”tomcat2”,与workers.properties配置的server名称对应

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

    (5)将以下注释掉的代码打开

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

    参考的文章中改为以下配置(未亲测):

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

    至此Tomcat配置完毕

    3、Tomcat优化(未亲测)
    在service.xml文件里加入

    maxThreads="800" minSpareThreads="25" maxSpareThreads="700" enableLookups="false" acceptCount="1200"

    maxThreads=”150” 表示最多同时处理150个连接
    minSpareThreads=”25” 表示即使没有人使用也开这么多空线程等待
    maxSpareThreads=”75” 表示如果最多可以空75个线程,例如某时刻有80人访问,之后没有人访问了,则tomcat不会保留80个空线程,而是关闭5个空的。
    acceptCount=”100” 当同时连接的人数达到maxThreads时,还可以接收排队的连接,超过这个连接的则直接返回拒绝连接。

    运行项目配置
    (1)需要在集群下运行的项目的web.xml文件结束标志/web-app前中加入

    <distributable/>

    (2)将要运行的项目分别放置于tomcat8-1和tomcat8-2的webapps下,或者在server.xml中配置

    <Context path="/test" docBase="E:/www/testProject" debug="0" reloadable="true" />

    Apache+Tomcat配置测试
    测试Tomcat
    首先空项目跑一下,看tomcat能否正常启动
    然后加项目跑一下,看tomcat能否正常启动

    测试Apache
    Tomcat启动后重启一下Apache服务,看能否启动
    注意:Apache有可能启动不起来,那么解决方式是查看Apache安装目录下的logs目录下的error.log文件,
    根据log文件解决可能存在的问题。直到Apache可以正常启动,至此Apache就可以正常启动了。

    测试负载均衡
    写一个测试jsp放置于项目中,运行一下,看控制台输出

    <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <%
    System.out.println("===========================");
    %>
    </body>
    </html>

    经测试
    (1)workers.properties配置为worker.controller.sticky_session=1,且tomcat的server中Cluster未打开时,同一浏览器多次访问均进同一tomcat,换浏览器后会进另一个tomcat。
    (2)workers.properties配置为另一种方式时为负载均衡,请求均匀分布在两个tomcat。

    如何把Apache和Tomcat加入Windows的服务:

    Apache:https://blog.csdn.net/charliefromkansas/article/details/50315317

    Tomcat:https://blog.csdn.net/warylee/article/details/82802174

  • 相关阅读:
    【vijos】【优先队列】合并果子
    【vijos】【二叉树】FBI树
    【NOIp复习】数据结构之栈、队列和二叉树
    【Leetcode】53. Maximum Subarray
    PHP json_encode转换空数组为对象
    206. Reverse Linked List
    151. Reverse Words in a String
    74. Search a 2D Matrix
    557. Reverse Words in a String III
    【Leetcode】79. Word Search
  • 原文地址:https://www.cnblogs.com/opsprobe/p/10479443.html
Copyright © 2020-2023  润新知