我有通过mod_jk
或连接到 Tomcat 的 HTTP Apache 服务器mod_proxy_http
。到目前为止,连接方式mod_proxy_http
工作正常,但连接方式mod_jk
导致找不到路径错误,例如:
在此服务器上找不到请求的 URL /cm/login.ep。
apache error_log 中对应的错误是:
[2014 年 5 月 24 日星期六 22:19:47] [错误] [客户端 127.0.0.1] 文件不存在:/Library/WebServer/Documents/cm
httpd.conf 中不使用 VirtualHost 定义。
mod_jk.log
没有显示任何错误,从workers.properties
文件中找到了工作人员。日志说:
[2014 年 5 月 23 日星期五 17:19:25] [758:140735273992976] [信息] init_jk::mod_jk.c (3383): mod_jk/1.2.40 已初始化
mod_proxy_http 和 mod_jk 的连接配置如下:
以下是mod_proxy_http
设置:
ProxyPass /webservices ajp://localhost:8009/webservices
ProxyPass /engine ajp://localhost:8009/engine
ProxyPass /cmserver ajp://localhost:8009/cmserver
ProxyPass /searchserver ajp://localhost:8009/searchserver
ProxyPass /dwr ajp://localhost:8009/dwr
ProxyPass /rss ajp://localhost:8009/rss
ProxyPass /rest ajp://localhost:8009/rest
ProxyPass /pr ajp://localhost:8009/pr
ProxyPass /template-resources ajp://localhost:8009/template-resources
ProxyPassMatch (/.*\.ep) ajp://localhost:8009/$1
ProxyPassMatch ^(/.*\.image) ajp://localhost:8009/$i
ProxyPassMatch /assets ajp://localhost:8009/assets
ProxyPassMatch ^(/.*_d_.*\.html) ajp://localhost:8009/$1
ProxyPassMatch ^(/.*_prod_.*\.html) ajp://localhost:8009/$1
ProxyPassMatch ^(/.*\.json) ajp://localhost:8009/$1
以下是mod_jk
设置:
JkMount /webservices/* a6
JkMount /engine a6
JkMount /cmserver/* a6
JkMount /searchserver/* a6
JkMount /dwr/* a6
JkMount /rss a6
JkMount /rest/* a6
JkMount /pr a6
JkMount /template-resources* a6
JkMount /*.ep a6
JkMount /*.image a6
JkMount /assets/* a6
JkMount /*_d_*.html a6
JkMount /*_prod_*.html a6
JkMount /*_attr_*.html a6
JkMount /*_pkg_*.html a6
JkMount /*_ptd_*.html a6
JkMount /*_ptattr_*.html a6
JkMount /*_ptpkg_*.html a6
JkMount /*_static_*.html a6
JkMount /*_attr_*.html a6
JkMount /*.json a6
JkMount /order/* a6
并且workers.properties
是:
worker.list=status,a6
# Worker for a6 webapps
worker.a6.port=8009
worker.a6.host=localhost
worker.a6.type=ajp13
# Status worker for managing load balancer
worker.status.type=status