Apache 只能用来处理静态网页,不能处理 asp,jsp,servlet 等这种动态网页, 而 Tomcat 是java 应用服务器,能处理动态网页. 可以整合 apache 和 tomcat 来部署企业应用
一. 安装web服务器
下载 Tomcat6.0, 解压至F盘. 安装 apache-2.4.4 的版本, 安装完后, 浏览器输入 localhost 和 localhost:8080 检查是否正常显示
二. 下载和配置mod_jk
mod_jk 是用来连接apache和tomcat的插件,使apache具有处理jsp/servlet能力
1. 下载二进制包,这里下载最新 mod_jk_1.2.40 32位 版本,解压后将 mod_jk.so 拷贝到 $(APACHE2_HOME)/modules 目录
2. 配置 jsp工作目录: E:\wwwroot
编辑$(TOMCAT)/conf/server.xml, 在<Host> </Host>之前添加:
<Context path="" docBase="E:\wwwroot" reloadable="true" crossContext="true"/>
3. 配置workers.properties ,告知 apache tomcat服务器位置
在$(TOMCAT)/conf 下新建workers.properties, 输入
# tomcat 路径 workers.tomcat_home=F:\tomcat # jre路径 workers.java_home=D:\Program Files\Java\jdk1.6.0_29 # 指定文件路径分隔符 ps=/ worker.list=ajp13 # 自定义worker 名称 worker.ajp13.port=8009 # 工作端口,默认8009,与 server.xml 保持一致 worker.ajp13.host=localhost # tomcat 服务器地址 worker.ajp13.type=ajp13 # 使用协议 worker.ajp13.lbfactor=1 # 负载平衡因数
三. 配置 apache,感知 tomcat
编辑 $(APACHE2_HOME)/conf/httpd.conf
# 加载 mod_jk.so 模块 LoadModule jk_module modules/mod_jk.so # apache与tomcat共用一个工作目录 DocumentRoot "E:/wwwroot" <Directory "E:/wwwroot"> AllowOverride All Options None Order Allow,Deny Allow from all </Directory> # 添加jsp类型 AddType application/x-httpd-jsp .jsp <IfModule jk_module> # 指定 workers.properties 路径 JkWorkersFile "F:/tomcat/conf/workers.properties" JkLogFile "F:/tomcat/logs/mod_jk2.log" JkLogLevel info # 向apache请求*.jsp,*.do动作时,用Tomcat解析 JkMount /*.jsp ajp13 JkMount /servlet/* ajp13 JkMount /*.do ajp13 ErrorLog logs/jk_error_log.txt CustomLog logs/jk_access_log.txt common </IfModule>
四. 测试
编写 hello.jsp文件
<%@page language = "java" import = "java.util.*"%> Hello world!<br> Now the time is: <%out.println(new Date());%>
浏览器输入: localhost/hello.jsp 报错: Forbidden You don't have permission to access / on this server
编辑 httpd.conf, 打开根目录的访问权限:
<Directory /> AllowOverride none #Require all denied Allow from all # 将上面一行注释,替换成该行 </Directory>
重启apache, 显示:
注: 之前测试过程中一直显示503错误, 查看 logs/mod_jk2.log 显示: jk_connect.c (594): connect to 184.202.120.0:8009 failed (errno=61)
这就奇怪了, 怎么会连接 184.202.120.0 这个IP地址呢,我上面不是配置的 localhost 的吗? 没折了, 发现用的是 tomcat-connectors-1.2.39-windows-i386-httpd-2.4.x.zip , 不是最新版, 果断换成 1.2.40 测试, 一切正常