我是一名新的技术人员。我的问题是,我有在 tomcat7 上运行的 Web 应用程序。现在我想在 Windows 服务器上安装和配置 mod_jk 以连接 apache 和 tomcat。
请告诉我,该怎么做?
谢谢
最佳答案
首先,您必须根据您的 apache httpd
版本从此处下载正确的 mod_jk 连接器二进制文件:
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/
如果你的apache是2.2版本,选择这个:
如果是 2.4,根据您喜欢 64 位还是 32 位版本选择其中之一:
- http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.40-windows-i386-httpd-2.4.x.zip
- http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip
下载并解压正确的一个。然后,从 zip 中提取 mod_jk.so 并将其放在您的 apache httpd 模块文件夹中,通常是 [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 web 应用程序的上下文路径匹配的请求。
如果您的应用程序监听 http://localhost:8080/app-context/那么你可以简单地在 httpd.conf 或你设置 load_module 语句的文件中添加它,就在 JKLogLevel 之后:
JkMount /app-context/* worker1
请注意,worker1
必须与您在 workers.properties 文件中为工作人员提供的名称相匹配。
现在,只需重新启动 apache httpd,确保 Tomcat 正在运行,然后在浏览器中尝试下一个 url:
如果你访问你的 Tomcat 网络应用程序,一切就都完成了。
关于windows - 如何在 Windows 服务器上安装 mod_jk(Apache Tomcat 连接器)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41011820/