windows环境下Apache2.4+Tomcat8配置学习笔记

来源:互联网 发布:千语是什么软件 编辑:程序博客网 时间:2024/06/16 03:09

准备工具

JDK:jdk-8u144-windows-x64.exe
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Apache:Apache 2.4.27
下载地址:https://www.apachehaus.com/cgi-bin/download.plx
Tomcat:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20-windows-x64.zip
Tomcat-connectors:mod_jk
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip

安装步骤

1. 安装配置JDK

2. 安装配置Apache

3. 安装配置Tomcat

4. 启动服务并测试

Apache安装与配置

Apache解压

在E:\Program Files (x86)建立一个文件夹Apache Group,将httpd-2.4.27-x64-vc14.zip解压到此文件夹下,下文中忽略E:\Program Files (x86)直接写Apache Group。

Apache安装与卸载

以管理员身份运行cmd,将目录移动到E:\Program Files (x86)\Apache Group\Apache24\bin下,安装运行:

httpd -k install -n Apache2.4

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

httpd -k uninstall -n Apache2.4

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

配置httpd.conf

打开Apache Group\Apache24\conf下的httpd.conf主配置文件进行配置,修改前将其备份一下

Define SRVROOT "/Apache24"ServerRoot "${SRVROOT}"

更改为安装目录

Define SRVROOT "E:\Program Files (x86)\Apache Group\Apache24"ServerRoot "${SRVROOT}"

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

httpd.conf最后一行加入

Include conf/mod_jk.conf

配置mod_jk.conf

  1. 将tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip解压,并找到其中mod_jf.so文件,将其放至Apache Group\Apache24\modules文件夹中
  2. 在Apache Group\Apache24\conf目录下建立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 controllerJkMount /*WEB-INF controllerJkMount /*j_spring_security_check controllerJkMount /*.action controllerJkMount /servlet/* controllerJkMount /*.jsp controllerJkMount /*.do controllerJkMount /*.action controllerJkMount /* controller

配置workers.properties

官方文档:http://tomcat.apache.org/connectors-doc/reference/workers.html

在Apache Group\Apache24\conf目录下建立workers.properties文件

worker.list =controller,tomcat1,tomcat2   #server 列表#========tomcat1========    worker.tomcat1.port=9019       #ajp13 端口号,在tomcat下server.xml配置,默认8009worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat1.type=ajp13worker.tomcat1.lbfactor = 1    #server的加权比重,值越高,分得的请求越多 #========tomcat2========  worker.tomcat2.port=8019worker.tomcat2.host=localhostworker.tomcat2.type=ajp13worker.tomcat2.lbfactor = 1#========controller,负载均衡控制器========   worker.controller.type=lbworker.controller.balanced_workers=tomcat1,tomcat2   #指定分担请求的tomcat    worker.controller.sticky_session=false               #回话是否有粘性,false表示无粘性,同一个回话的请求会到不同的tomcat中处理worker.controller.sticky_session_force=false         #当一个节点蹦了,如果设值为true,那么服务器返回500错误给客户端,如果设值为false,则转发给其他的tomcat,但是会丢失回话信息

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

http://blog.csdn.net/fubin5115/article/details/78078166

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

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

Apache调优(未亲测)

放开httpd.conf里面的Include conf/extra/httpd-mpm.conf一句。
把conf\extra目录下的httpd-mpm.conf文件里的参数改为:

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

Tomcat安装与配置

Tomcat安装

  1. 将apache-tomcat-8.5.20-windows-x64.zip解压到Apache Group目录下
  2. 在相同目录下复制一份,命名为apache-tomcat-8.5.20-01,apache-tomcat-8.5.20-02

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配置完毕

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.将要运行的项目分别放置于tomcat1和tomcat2的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。


集群配置学习至:
http://blog.csdn.net/shaozengwei/article/details/40861447
http://www.cnblogs.com/God-froest/p/apache_tomcat.html
http://blog.csdn.net/dongdong9223/article/details/70255992
http://blog.csdn.net/dongdong9223/article/details/70398091
http://www.iteye.com/topic/411362

阅读全文
0 0
原创粉丝点击