首先我们要去tomcat的官网下载mod_jk.so模块。
总的文件夹网址:Index of /dist/tomcat/tomcat-connectors/jk/binaries/windows
适用于32位的apache2.2:https://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.40-windows-i386-httpd-2.2.x.zip
适用于64位的apache2.4:https://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip
适用于windows系统的apache服务器的mod_jk.so模块的下载地址_JSP吧_Purasbarhttps://zh.purasbar.com/post.php?t=29522笔者用的系统是32位的XP系统,apache版本是2.2,所以在文件夹里面下载tomcat-connectors-1.2.40-windows-i386-httpd-2.2.x.zip这个压缩包,里面就有mod_jk.so文件。
将mod_jk.so解压到apache的C:\Program Files\Apache Software Foundation\Apache2.2\modules文件夹下。
用网页设计软件(如Dreamweaver CS3)或文本编辑器在tomcat的C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT文件夹下建立一个test.jsp页面。
html
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.util.*" errorPage="" %>
<!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>系统时区列表</title>
</head>
<body>
<%
String[] list = TimeZone.getAvailableIDs();
Arrays.sort(list);
for (String name : list) {
out.println(name + "<br>");
}
%>
</body>
</html>
页面放好后,可在tomcat中访问,apache目前还无法访问。
在C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf里面添加:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /*.jsp worker1
创建C:\Program Files\Apache Software Foundation\Apache2.2\conf\workers.properties文件,内容如下:
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
在C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\server.xml里面去掉8009端口Connector节点的注释:
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
重启apache和tomcat服务器,重启apache服务器后可在窗口下方看到多了一个mod_jk/1.2.40。
现在就可以通过apache直接访问jsp页面了,同时php页面也能正常访问。
要想访问文件夹时能自动识别index.jsp,往apache配置文件的DirectoryIndex里面添加index.jsp是无效的。DirectoryIndex应该只保留index.html和index.php。
DirectoryIndex: sets the file that Apache will serve if a directory
is requested.
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
假设:
C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\haha里面有test.php页面。
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\haha里面有index.jsp页面。
那应该再往apache的httpd.conf里面增加下面两条指令。
JkMount /haha worker1
JkMount /haha/ worker1
这样重启apache服务器后,访问/haha/就能识别/haha/index.jsp(但/haha/index.php就无法识别了),同时/haha/test.php也能正常访问。
现在http://localhost/test.jsp可以访问了,但https网址https://localhost/test.jsp还无法访问。
需要修改C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-ssl.conf配置文件,在<VirtualHost>里面也要加入JkMount /*.jsp worker1。
重启apache服务器后,https也能访问jsp页面了。
提示:只有Windows XP SP3及以上的IE6浏览器才支持sha256RSA签名的https证书。
要想让XP SP2的IE6浏览器和Win2000 SP4的IE5和IE6浏览器成功访问https,https证书必须用sha1RSA签名(如自签名的sha1RSA证书)。
Win2000 SP4系统最高只能装IE6浏览器的SP1版本,这个版本不支持sha256的https证书。
如果apache配置sha256的https证书,那么IE5和IE6都无法显示网页。
XP SP3系统里面的IE6是SP3版本,这个版本才支持sha256的https证书。Win2000是装不了IE6的SP3版本的,最高只能装IE6 SP1。