mod_jk 状态页面不工作

mod_jk 状态页面不工作

我正在使用 Apache 服务器在 Tomcat 7 中进行集群。它也运行良好。但是我遇到了以下问题:

1) 我正在尝试监控 mod_jk 状态页面;但它给出了 404 错误。

2)日志中显示以下错误 -

[Tue Dec 17 13:16:51.019 2013] [2236:140599476504544] [error] init_jk::mod_jk.c (3348): Initializing shm:/etc/httpd/logs/mod_jk.shm.2236 errno=13. Load balancing workers will not function properly.
[Tue Dec 17 13:16:51.019 2013] [2236:140599476504544] [info] init_jk::mod_jk.c (3365): mod_jk/1.2.37 initialized
[Tue Dec 17 13:16:51.041 2013] [2237:140599476504544] [error] init_jk::mod_jk.c (3348): Initializing shm:/etc/httpd/logs/mod_jk.shm.2237 errno=13. Load balancing workers will not function properly.
[Tue Dec 17 13:16:51.042 2013] [2237:140599476504544] [info] init_jk::mod_jk.c (3365): mod_jk/1.2.37 initialized

这是 worker.properties 文件

worker.list=tomcatnode1,tomcatnode2,loadbalancer,statusmanager

worker.tomcatnode1.port=8009
worker.tomcatnode1.host=localhost
worker.tomcatnode1.type=ajp13
worker.tomcatnode1.lbfactor=100

worker.tomcatnode2.port=8010
worker.tomcatnode2.host=localhost
worker.tomcatnode2.type=ajp13
worker.tomcatnode2.lbfactor=100


#Load Balance Configuration
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=tomcatnode1, tomcatnode2
worker.loadbalancer.sticky_session=1

#worker.list=jkstatus
worker.statusmanager.type=status

这是 mod_jk.conf 文件

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkShmFile logs/mod_jk.shm
JkMount /IntellixWebApi/* loadbalancer
#JkMount /jkmanager/* jkstatus
#JkMount /jkmanager jkstatus

<Location /status/>
    JkMount statusmanager
    Order deny,allow
#   Deny from all
    Allow from 127.0.0.1
</Location>

如果我访问 IntellixWebApi; 它是可访问的。但是当我使用 /status; 它不起作用。

请提出建议。

答案1

初始化工人所需的共享内存出现问题。

检查目录是否/etc/httpd/logs/存在,并且是否可由运行 tomcat 实例的用户写入。如果不存在,请更改目录的权限,或创建一个单独的目录来保存 shm 文件。(我建议后者,因为出于多种原因,将重要状态与日志保存在同一位置并不是一个好主意。)

如果目录确实存在且可写,请检查您是否已启用 SELinux,如果已启用,请检查是否存在任何权限问题。您可以尝试将其设置为宽容,看看问题是否消失;如果是,则是时候修复权限并将其重新启用了。

答案2

经过大量的谷歌搜索,我能够获得 jk_manager 状态屏幕。首先,我禁用了 SELINUX,然后在重新启动系统后,我设置了以下 JkMount

JkMount /* loadbalancer
JkMount /IntellixWebApi/* loadbalancer
JkMount /jkmanager/* jkstatus

<Location /status/>
    JkMount statusmanager
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

这对我有用。

谢谢

相关内容