整理自:http://blog.csdn.net/chumeng411/article/details/7543027
1、在已配置完成的 apache 项目中
workers.properties配置文件中加入下面两行
worker.list = status
worker.status.type=status
——比如你当前已经有一个lb类型的worker,就加一个status类型就可以咯,比如我的是:
[root@vs150 conf]# cat workers.properties
#
# workers.properties
#
# list the workers by name
worker.list=lbw,status
# 150 server
# ------------------------
worker.s1.port=8009
worker.s1.host=172.20.0.150
worker.s1.type=ajp13
worker.s1.lbfactor = 1
# 149 server
# ------------------------
worker.s2.port=8009
worker.s2.host=172.20.0.149
worker.s2.type=ajp13
worker.s2.lbfactor = 1
worker.lbw.type=lb
worker.retries=3
worker.lbw.balance_workers=s1,s2
worker.status.type=status
2、mod_jk.conf 配置文件中加入下面一行
JkMount/jkstatus status
在地址栏访问http://YOUSR_IP/jkstatus 就能看到了。
当然我们除了设置为了监控jk运行状态,我们一般会把/jkstatus指向jk的worker。而且很多配置都会使用这个路径,所以很容易被别人访问到。因此我们可以在此设置简单简单的密码来防止别人访问到。
下面是个例子:在没有密码的情况下访问http://YOUSR_IP/jkstatus
如何解决呢,大致我认为有3种方法:
禁制其他访问,只限制部分ip的访问
通过一下设置,注意别写反了:
<Location /jkstatus>
Order deny,allow
Deny from all
Allow from 某个ip
</Location>
或者全部不让访问
<Location /jkstatus>
Order deny,allow
Deny from all
</Location>
2 不在worker里面配置status的worker。这样有可能默认交给了tomcat处理,最后也许看到的就是可爱的404界面。
3 添加密码通过配置(有几种方式,basic,digest 其他?),这个就basic介绍一下
<Location /jkstatus>
Order deny,allow
AuthType Basic
AuthName “验证中心” #弹出框的提示
AuthUserFile conf/jk_passwd
require valid-user
</Location>
生成密码文件的方式如下(以windows为例:htpasswd -bc 文件路径 用户名 密码):