为了整合APACHE跟TOMCAT相信不少朋友都花费了不少的功夫。为何?相信大部分朋友都是跟我一样的习惯,有问题google一下了,单goole搜索到的结果却太多了,而且更让人郁闷的是,好多文章本来就是贴来贴去的而且文章内容不是这里少点就是那里少点。对于初次整合者来说,这样的文章真的只会是加大整合的难度,也许有的人就在N次失败后就放弃了。本人也是在经历了N次失败的基础上才配置成功的。为了避免以后配置的麻烦,特留下此文,希望此文不是初次配置JK者的绊脚石,^_^
本文介绍了windows 2000 server 下Apache-2.0.58+mod_jk-2.0.55+Tomcat-5.1.15的整合过程.
一、准备相关软件
若以下下载地址失效,请到http://www.apache.com/dist站点相应目录下下载最新版本,配置方法其实基本都一样,笔者已经在不同的环境下测试过了.
1).Apache_2.0.58-Openssl_0.9.8b-Win32.zip(已经包含mod_ssl当然也可以自行下载独立的版本请下载2.0.X版本对于2.2.X版本暂时没有可用的连接器)
2).mod_jk-apache-2.0.55.so
3).Tomcat-5.5.16(需要安装jre支持,建议安装JDK1.5以上版本)
二、软件安装
1).安装APACHE with mod_ssl
为了减少配置的麻烦,解压Apache_2.0.58-Openssl_0.9.8b-Win32.zip到c:\盘并把该文件夹命名为apache。打开命令提示符->进入C:\APACHE\BIN目录->执行命令"httpd -k install -n httpd"(若启用mod_ssl则用以下命令apache -D SSL -k install -n httpd)即可以把apache2.0.58安装为名称为"httpd"的系统服务.->"net start httpd"可以启动apache服务。打开浏览器浏览http://localhost,若你看到了"IT works!"则说明apache 2.0.58已经安装成功了。用其他方式安装的也应该是大同小异。
2).安装mod_jk
把下载所得的mod_jk-apache-2.0.55.so重命名为mod_jk.so并拷贝到C:\apache\modules目录下(若apache不安装在C:\APACHE则拷到相应的modules目录即可).
3).安装Tomcat
把下载所得的WIN exe文件直接默认安装即可.
三、软件配置(关键步骤)
1).修改conf/httpd.conf文件
在最后面追加以下几行
# mod_jk Include conf/mod_jk.conf |
增加以下几行,以设置虚拟主机
2). 配置mod_jk.conf
|
# Load mod_jk module LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties JkWorkersFile conf/workers.properties
# Where to put jk logs JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info] JkLogLevel info
# Select the log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE, JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format JkRequestLogFormat "%w %V %T"
# Send servlet for context /examples to worker named ajp13 #JkMount /servlet/* ajp13
# Send JSPs for context /examples to worker named ajp13 JkMount /*.jsp ajp13
|
3).配置httpd-vhost.conf
|
<VirtualHost 192.168.0.134:80> ServerAdmin webmaster@localhost DocumentRoot "D:/Tomcat5.0/webapps/ROOT" ServerName localhost ErrorLog logs/localhost-error_log CustomLog logs/localhost-access_log common
</VirtualHost>
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot "d:/myjava/myweb" ServerName www.test.com ErrorLog logs/ok.com-error_log CustomLog logs/ok.com-access_log common
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from localhost Allow from www.test.com </Location> </VirtualHost>
|
4).配置 workers.properties(worker)
新建文件workers.properties并输入一下内容
|
#worker.list=ajp13 #由Tomcat使用Server.xml文件中Connector的标签来定义其端口和协议,Tomcat5默认为ajp13协议 #worker.ajp13.host=localhost #本机,若上面Tomcat主机不为localhost,作相应修改 #worker.ajp13.type=ajp13 #类型 #worker.ajp13.lbfactor=1 #代理数,不用修改
worker.list=ajp13 worker.ajp13.port=8009 worker.ajp13.host=localhost #本机,若上面Tomcat主机不为localhost,作相应修改 worker.ajp13.type=ajp13 #类型 worker.ajp13.lbfactor=1 #代理数,不用修改
|
5). 配置Tomcat虚拟主机,以配合APACHE虚拟主机工作修改server.xml,增加一下章节(</Engine>标签前).
<Host name="192.168.0.134" appBase="d:/myjava/myweb" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="" debug="0" /> </Host> <Host name="www.test.com" debug="0" appBase="d:/myjava/myweb" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="." /> <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="test.com_log." suffix=".txt" timestamp="true" /> </Host> |
6).新建立目录d:/myjava/myweb,并放入一个jsp探针(点击下载).
7).重启apache,重启Tomcat,访问http://www.test.com/jspenv.jsp,不出意外的话,你将看到一下成功信息。

7).mod_ssl配置
A).修改httpd.conf文件,取消 “LoadModule ssl_module modules/mod_ssl.so”所在行的注释
B).在尾部增加以下几行
<IfModule mod_ssl.c> Include conf/ssl.conf </IfModule> |
C).在conf目录下增加ssl.conf文件内容如下格式
|
<IfDefine SSL> Listen 443 #监听443端口 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLPassPhraseDialog builtin
SSLSessionCache dbm:logs/ssl-scache.log SSLSessionCacheTimeout 300
SSLRandomSeed startup builtin SSLRandomSeed connect builtin <VirtualHost 192.168.0.134:443> #虚拟主机IP # General setup for the virtual host DocumentRoot "C:/Apache/htdocs" #根目录 ServerName www.ilinux.com.cn:443 #虚拟主机域名.没有的可以直接用IP ServerAdmin forlinux@hotmail.com ErrorLog logs/SSL.log TransferLog logs/ssl_access.log
SSLEngine on #启用SSL,必须
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile conf/ssl/server.crt #SSLCertificateFile conf/ssl.crt/server-dsa.crt
SSLCertificateKeyFile conf/ssl/server.key
#SSLVerifyClient require #SSLVerifyDepth 10 <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "cgi-bin"> SSLOptions +StdEnvVars </Directory>
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>
</IfDefine>
|
D).在conf目录下新建ssl目录,打开CMD窗口进入apache/bin/目录,分别执行一下命令
|
openssl req -config openssl.cnf -new -out ../conf/ssl/server.csr
openssl rsa -in privkey.pem -out ../conf/ssl/server.key
openssl x509 -in ../conf/ssl/server.csr -out ../conf/ssl/server.crt -req -signkey ../conf/ssl/server.key -days 365
|
也可以把上述内容保存到一个批处理文件中ssl.bat(右击另存为ssl.bat)
E).重启APACHE
F).浏览域名https://www.ilinux.com.cn

四、相关资源、配置文件下载
1).apache-tomcat(下载后请改扩展名为rar)
2).SSL.CONF(右击另存)
五、参考
1).http://www.raibledesigns.com/tomcat/
2).The Apache + SSL HOWTO
3). http://www.madhon.co.uk/modssl/
4). Building a Web Server, a Step-by-Step Instruction Guide
5). apache-ssl-win32-howto
发表于 @ 2006年06月07日 23:00:00|评论(loading...)|编辑