如何彻底禁用ActiveMQ的http://localhost:8161/ Web管理页面
ActiveMQ 彻底禁用8161 Web管理控制台配置方法
不需要使用Web管理控制台的场景下,直接从内嵌Jetty容器层面关闭服务是最彻底的实现方式,不存在权限绕过风险,具体操作如下:
推荐方案:完全关闭8161端口监听
ActiveMQ所有Web相关能力(包括管理控制台、默认demo页面)都由进程内嵌的Jetty容器承载,直接关闭Jetty对外监听即可彻底阻断所有Web访问路径:
- 定位到ActiveMQ安装根目录,进入
conf子目录编辑jetty.xml配置文件 - 找到配置Jetty监听端口的配置块,默认内容如下:
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start"> <property name="host" value="0.0.0.0"/> <property name="port" value="8161"/> </bean>
- 直接将该配置整段注释,或者将
port属性值修改为-1,让Jetty启动时不绑定任何对外端口 - 同文件内找到负责加载Web控制台资源的
WebConsoleStarter相关bean配置,整段注释即可避免启动时加载无用的控制台资源 - 保存配置后重启ActiveMQ服务生效:
- 二进制解压部署版本:进入安装目录的
bin文件夹,执行./activemq restart - 系统服务托管版本:执行
systemctl restart activemq
- 二进制解压部署版本:进入安装目录的
- 校验方式:本地访问
http://localhost:8161/提示连接拒绝,说明配置已生效
备选方案:仅移除管理控制台应用(保留8161端口其他Web服务)
如果8161端口承载了其他自定义Web服务,仅需要移除管理控制台能力,可按以下方式调整:
- 编辑
conf/jetty.xml配置文件 - 找到id为
adminWebApp的Web应用上下文配置(对应/admin路径的控制台页面),整段注释该配置块 - 找到根路径
/对应的重定向配置bean(默认逻辑是将根路径请求跳转至/admin控制台登录页),同样整段注释 - 保存配置后重启ActiveMQ服务即可,此时访问8161端口不会再出现控制台登录页,原控制台路径直接返回404
注意:5.14之前的部分老版本ActiveMQ没有单独抽离
jettyPort配置,8161端口直接配置在Jetty Connector的bean块中,找到对应<property name="port" value="8161"/>配置项注释或修改即可,核心逻辑和上述方案一致。
内容的提问来源于stack exchange,提问作者MWH
相关产品推荐
相关产品推荐

