我是一个新技术人员。我的问题是,我有在tomcat7上运行的Web应用程序。现在我想在Windows服务器上安装和配置mod_jk以连接apache和tomcat。
请告诉我,怎么做?
由于
答案 0 :(得分:21)
首先,您必须从此处下载正确的mod_jk连接器二进制文件,具体取决于您的apache httpd
版本:
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/
如果你的apache是2.2版本,请选择:
如果是2.4,请根据您喜欢的64位或32位版本选择其中一种:
下载并解压缩正确的一个。然后,从zip中提取mod_jk.so并将其放在apache httpd modules文件夹中,通常为[APACHE_HOME]/modules
完成后,您必须创建一个workers.properties
文件,通常在apache conf目录或其中的任何其他文件(conf.d,extra等)。
通常workers.properties
文件包含以下内容:
worker.list=worker1,jkstatus
#Set properties for worker19 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.ping_timeout=1000
worker.worker1.connect_timeout=10000
worker.worker1.prepost_timeout=10000
worker.worker1.socket_timeout=10
worker.worker1.connection_pool_timeout=60
worker.worker1.connection_pool_size=90
worker.worker1.retries=2
worker.worker1.reply_timeout=300000
# status worker
worker.jkstatus.type=status
您必须检查worker.worker1.host
和worker.worker1.port
是否具有正确的值才能到达tomcat的ajp连接器。 8009端口是常用的,但最好在tomcat的server.xml中检查一下,并在workers.properties中设置正确的端口。
然后,在httpd.conf或任何其他外部conf文件中,添加以下内容:
# Load mod_jk module
LoadModule jk_module modules/tomcat-connector/mod_jk.so
# Add the module (activate this lne for Apache 1.3)
# AddModule mod_jk.c
# Where to find workers.properties
JkWorkersFile conf/extra/workers.properties # Check the path is correct to your workers.properties
# Where to put jk shared memory
JkShmFile logs/mod_jk.shm
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
完成此操作后,您可以尝试重新启动Apache httpd以查看所有已完成的操作是否正确。如果apache正确启动,现在您可以开始计划如何将匹配请求从httpd重定向到tomcat。最简单的方法是重定向与Tomcat webapp的上下文路径匹配的每个请求。
如果您的应用程序在http://localhost:8080/app-context/中进行侦听,那么您只需在httpd.conf或您设置load_module语句的文件中添加它,就在JKLogLevel之后:
JkMount /app-context/* worker1
请注意,worker1
必须与您在workers.properties文件中为工作人员提供的名称相匹配。
现在,只需重新启动apache httpd,确保Tomcat正在运行,然后在浏览器中尝试下一个url:
如果您使用Tomcat webapp,一切都已完成。