侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

win7下Apache2.2+Tomcat7.0整合配置详解

Windows  /  管理员 发布于 7年前   293

一、简单介绍 Apache、Tomcat

Apache HTTP Server(简称 Apache),是 Apache 软件基金协会的一个开放源码的网页服务器,可以在 Windows、Unix、Linux 等操作系统中运行是最流行的Web服务器软件之一。Apache 反应速度快,运行效率高,但只支持HTML等静态页面(加载插件后也可支持 PHP 页面)。
Apache Tomcat 是由 Apache 软件基金协会与 Sun 公司联合开发的一款Web服务器,它除了支持HTML等静态页面外,还支持JSP、Servlet 。
在相同的运行环境下,Tomcat 对静态页面的反应速度没有 Apache 灵敏,整合 Apache 与 Tomcat 能使系统运行于一个良好环境下,提高系统效率。

二、软件包下载

运行环境:Windows 7

Apache 2.2 下载:http://httpd.apache.org/download.cgi

Tomcat 7.0 下载:http://tomcat.apache.org/download-70.cgi

JDK 6 下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html

mod_jk.mo 连接包下载:http://apache.etoak.com//tomcat/tomcat-connectors/jk/binaries/windows/

三、JDK 安装

JDK (Java Development Kit) 是 Sun 针对Java开发员的产品,是现今使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境和基础类库等。常用版本包括 JDK 6、JDK 7、JDK 8。

成功安装 JDK 6 后,必须设置环境变量,让系统感知并能调用 JDK 6。

打开 “控制面板 --> 系统安全 --> 系统 --> 高级系统设置 --> 环境变量”,增加以下配置 :

变量 值 说明
java_home C:\ jdk1.6.0_30 写入JDK安装的路径
Path ;%java_home%\bin 在Path原有值上加入此值
classpath ;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar 在classpath的原有值上加入此值

四、Apache 2.2 安装

运行 Apache 2.2 安装包, 在安装过程可以设置域名、服务器名称和端口,Apache的默认端口为80。

具体的安装步骤可以参考这篇文章:///article/52086.htm

httpd.conf 是Apache的主要配置文件,在Apache 安装完成后,可尝试打开 “/Apache 2.2/conf/httpd.conf ” 文件进行修改,下面是 Apache 的常用配置:

ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.2"# 定义配置文件、日志文件等的根目录,通常为Apache2.2安装的要目录<IfModule mpm_winnt.c>  ThreadsPerChild 250  MaxRequestsPerChild 0</IfModule># <IfModule prefork.c>#   .......# </IfModule># <IfModule worker.c>#  .......# </IfModule># Apache 支持MPM多路处理模块,MPM是一种多进程与多线程相混合的模式# Apache 为 Unix、OS/2、BeOS 系统定义了 perwork、worker、beos 等多种模式# 但在Windows下只支持winnt模式# ThreadPerChild 定义常用线程数、MaxRequestsPerChild 定义最多线程数Listen 8000# 设置 Apache 的监听路径,一般默认为127.0.0.1:80端口,但由于80经常被IIS等进程所占用,# 建设改用另一个端口,此处使用8000端口LoadModule actions_module modules/mod_actions.soLoadModule alias_module modules/mod_alias.soLoadModule asis_module modules/mod_asis.soLoadModule auth_basic_module modules/mod_auth_basic.so# LoadModule auth_digest_module modules/mod_auth_digest.so....................# 设置模块处理<IfModule !mpm_netware_module>  <IfModule !mpm_winnt_module>     User daemon     Group daemon  </IfModule></IfModule># 如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动# 然后再将它切换为你想要使用的用户或组。ServerAdmin [email protected]# 定义管理员邮箱,当Apache出错时将把错误信息发到此地址ServerName 127.0.0.1# 如果你的主机没有注册DNS名,在这里键入它的IP地址DocumentRoot "E:/Apache Webs"# 定义发布文件的根目录 <Directory />  Order deny,allow  Deny from all</Directory># 为特定的目录配置一组默认指令,禁止访问根目录的文件<Directory “E:/Apache Webs/WebSite1”/>  Order deny,allow</Directory># 允许客户访问WebSite1下的目录ErrorLog "logs/error.log"# ErrorLog:错误日志文件定位。LogLevel warn# LogLevel:控制记录在错误日志文件中的日志信息数量。# 包括:debug,info,notice,warn,error,crit,alert,emerg。<IfModule log_config_module>  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined  LogFormat "%h %l %u %t \"%r\" %>s %b" common  <IfModule logio_module>   LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio  </IfModule>  CustomLog "logs/access.log" common</IfModule># 日志访问格式设置<IfModule alias_module>  ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"</IfModule># 设定默认CGI脚本目录及别名<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">  AllowOverride None  Options None  Order allow,deny  Allow from all</Directory># 设定默认CGI脚本目录的属性DefaultType text/plain# 设定默认MIME内容类型<IfModule mime_module>  TypesConfig conf/mime.types  AddType application/x-compress .Z  AddType application/x-gzip .gz .tgz</IfModule># 指定MIME类型映射文件<IfModule ssl_module>  SSLRandomSeed startup builtin  SSLRandomSeed connect builtin</IfModule># SSL默认配置

完成配置后,启动Apache 2.2,在 "E:\\Apache Webs\WebSite1" 添加静态页面 index.html。
最后打开 http://localhost:8000/index.html,测试 Apache 2.2 能否正常运行。

五、Tomcat 7 安装

运行 Tomcat 7 安装包,完成安装后,打开 “控制面板 --> 系统安全 --> 系统 --> 高级系统设置 --> 环境变量”,增加以下配置 :

变量 值
tomcat_home C:\Program Files\Apache Software Foundation\Tomcat 7.0
Path ;%tomcat_home%\lib;%tomcat_home%\lib\servlet-api.jar;%tomcat_home%\lib\jsp-api.jar

在 Tomcat 的目录下,conf 文件夹中包含 Tomcat 的核心配置,logs 文件夹包含 Tomcat 的日志记录 , webapps 文件夹是 Tomcat 的默认网站存放目录。

在conf 文件夹的 server.xml 是 Tomcat 最为重要的配置,下面是 server.xml 的常用设置:

<?xml version='1.0' encoding='utf-8'?> <!-- Server 属性说明     port:指定一个端口,这个端口负责监听关闭Tomcat的请求     shutdown:向以上端口发送的关闭服务器的命令字符串   -->  <Server port="8006" shutdown="SHUTDOWN">  <!--定义多个监听-->  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />  <Listener className="org.apache.catalina.core.JasperListener" />  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />  <!--定义共用资源-->  <GlobalNamingResources>   <Resource name="UserDatabase" auth="Container"        type="org.apache.catalina.UserDatabase"        description="User database that can be updated and saved"        factory="org.apache.catalina.users.MemoryUserDatabaseFactory"        pathname="conf/tomcat-users.xml" />  </GlobalNamingResources>  <!--<Service>元素由org.apache.catalina.Service接口定义,它包含一个<Engine>元素,  以及一个或多个<Connector>,这些Connector元素共享用同一个Engine元素-->  <Service name="Catalina">   <!--<Connector>元素代表与客户程序交换信息,它可以接收客户的请求,并向客户返回响应结果-->   <!--定义HTTP协议的处理方式,处理接口默认为8080      由于此接口经常被其他应用程序调用,建议修改接口-->   <Connector port="8081" protocol="HTTP/1.1"        connectionTimeout="20000"        redirectPort="8443" />   <!--定义AJP/1.3协议的处理方式,此为整合 Tomcat+Apache 的核心协议,请慎重处理 -->   <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />   <!--每个<Service>元素只能包括一个<Engine>元素.      <Engine>元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求-->   <Engine name="Catalina" defaultHost="localhost">    <!-- Realm是一个存储用户名,密码以及和用户名相联系的角色的”数据库”      用户名,密码可以用来验证用户对一个或多个web应用程序的有效性。-->    <Realm className="org.apache.catalina.realm.LockOutRealm">     <Realm className="org.apache.catalina.realm.UserDatabaseRealm"        resourceName="UserDatabase"/>    </Realm>    <!--<Host>元素定义了一个虚拟主机,它可以包含一个或多个Web应用-->    <Host name="localhost" appBase="webapps"       unpackWARs="true" autoDeploy="true">     <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"        prefix="localhost_access_log." suffix=".txt"        pattern="%h %l %u %t "%r" %s %b" />    </Host>   </Engine>  </Service> </Server>

Tomcat 默认使用8080端口处理HTTP请求(因为此端口经常被其他应用程序调用,建议修改)。
完成设置后,输入地址localhost:8080 就可看到 Tomcat 的管理页面。

可以在 webapps 目录下新建 index.jsp 页面,启动 Tomcat ,测试 Tomcat 能否正常运行。

六、整合 Apache+Tomcat

在 Apache、Tomcat 都能正常运行的情况下,把 mod_jk.mo 拷贝到 "/Apache2.2/modules"
在 “/Tomcat 7.0/conf ” 文件夹下增加 workers.properties 文件,输入以下内容。

workers.tomcat_home=C:\Program Files\Apache Software Foundation\Tomcat 7.0#让 mod_jk 模块感知 Tomcatworkers.java_home=C:\Program Files\Java\jdk1.6.0_30\jre#让 mod_jk 模块感知 jreps=\#指定文件路径分割符worker.list=config1worker.config1.port=8009#工作端口,此端口应该与server.xml中Connector元素的 AJP/1.3 协议所使用的端口相匹配worker.config1.host=localhost#Tomcat服务器的地址worker.config1.type=ajp13#类型worker.config1.lbfactor=1#负载平衡因数

注意:

worker.list=config1中,conifg1为自定义名称,但此名称必须与下文所述的 “/Apache 2.2/conf/httpd.conf ” 文件中 ,JkMount 指令对应的名称相匹配。

加入workers.properties 文件后,可修改 “/Apache 2.2/conf/httpd.conf ” 文件,加入以下配置。
注意 JkMount 指令中的变量必须与worker.list 所配置的名称相同。

# 设置虚拟主机,定义端口为8000 <VirtualHost 127.0.0.1:8000>   ServerName 127.0.0.1   #定义服务名称   DocumentRoot "C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps"   #定义站点项目所在路径,把路径指向 tomcat 中的默认网站目录   DirectoryIndex index.html index.htm index.jsp   ErrorLog logs/shsc-error_log.txt   CustomLog logs/shsc-access_log.txt common   #例子1,让 Apache 支持对webapps/sun.shop/blog 中页面传送   JkMount /sun.shop/blog/* config1   #例子2,向Apache请求此文件夹内页面时,系统将转向用Tomcat解析   JkMount /*.jsp config1   #例子3,向 Apache 请求jsp页面时,用 Tomcat 进行解析   JkMount /*.do config1   #例子4,向 Apache 请求.do 动作时, 用 Tomcat 进行解析   JkMount /*.action config1   #例子5,向 Apache 请求 .action 动作时, 用 Tomcat 进行解析 </VirtualHost>  # 允许客户端访问此路径 <Directory "C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps">    Options Indexes FollowSymLinks    AllowOverride None    Order allow,deny    Allow from all  </Directory>   LoadModule jk_module modules/mod_jk.so # 此处 mod_jk.so 文件为你下载的文件 JkWorkersFile "C:/Program Files/Apache Software Foundation/Tomcat 7.0/conf/workers.properties" # 指定tomcat监听配置文件地址 JkLogFile "C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/mod_jk2.log" # 指定日志存放位置 JkLogLevel info

注意:

JkMount /*.jsp config1 指令代表当客户端向 Apache 发送 *.jsp 页面请求时,把处理指向 Tomcat。当使用 Struts时建议使用 *.action、*.do等后缀命名动作,否则若使用无后缀命名时,加入 JkMount /* config1命令,Apache 则会把包括 *.html等静态页面所有请求,都转向 Tomcat。

完成以上配置后,重启 Apache、Tomcat。此时 Apache、Tomcat 的默认目录为 “C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps ”,对HTTP请求,Apache 使用8000端口,Tomcat 使用 8081 端口。在默认目录下加入index.jsp 页面后,直接向 Apache 发送 http://localhost:8000/index.jsp 页面请求,可见 Apache 会把请求转向 Tomcat 进行处理。
对JAVA开发有兴趣的朋友欢迎加入QQ群:174850571 共同探讨 !


  • 上一条:
    Win2012服务器 远程桌面帐户允许多用户同时登录的配置方法
    下一条:
    Win2008 R2下配制负载均衡方法(图文简洁版)
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Windows 10的告别:2025年10月14日,一段时代的终结(0个评论)
    • windows 11激活_Win11 KMS激活流程步骤(1个评论)
    • 安装Windows 11系统的注意了,看看你的cpu是否在微软兼容列表排除中(1个评论)
    • 微软将于2022年9月20日推送Windows11 22H2新版本,推测2024发布windows 12(0个评论)
    • windows11系统中可以关闭禁止的服务及介绍(1个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2018-01
    • 2018-06
    • 2020-06
    • 2021-06
    • 2021-07
    • 2022-01
    • 2022-04
    • 2022-08
    • 2023-08
    • 2023-10
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客