如何通过Apache Artemis配置文件设置管理控制台Cache-Control头?
Apache Artemis管理控制台缓存控制配置问题
结论
可以通过Artemis自身配置实现自定义Cache-Control头,无需依赖代理层处理。
具体实现方法
Artemis的管理控制台由内置Jetty服务器提供服务,可通过**bootstrap.xml**配置Jetty的Servlet过滤器来添加目标HTTP头:
- 打开
bootstrap.xml,找到管理控制台对应的Jetty配置段(通常包含<web bind="http://0.0.0.0:8161" path="web">)。 - 在该配置段内添加
CacheControlFilter的定义:
<web bind="http://0.0.0.0:8161" path="web"> <!-- 保留原有其他配置 --> <filter name="cacheControlFilter" class="org.eclipse.jetty.servlets.CacheControlFilter"> <param name="cacheControl" value="no-cache, no-store, must-revalidate"/> <param name="pathSpec" value="/*"/> <!-- 对所有控制台资源生效 --> </filter> </web>
- 重启Artemis broker,配置即可生效。
额外说明
- Artemis内置的Jetty环境已包含
org.eclipse.jetty.servlets.CacheControlFilter类,无需额外引入依赖。 - 如果使用HTTPS访问管理控制台,在对应的HTTPS
web配置节点中添加相同过滤器即可。 - 配置生效后,浏览器请求控制台静态资源(如React打包文件)时会收到指定的
Cache-Control头,彻底避免缓存旧版本资源。
内容的提问来源于stack exchange,提问作者erik karlstrom
相关产品推荐
相关产品推荐

