我们有运行tomcat和apache的网站,并且希望只在apache级别缓存特定的jpg,gif图像以减少tomcat负载。
关于CSS和Javascripts,所有这些都可以缓存。
在部署已更改的图像,css和javascripts后,它应自动加载。
我正在尝试获取此配置但找不到任何内容..有人可以分享示例配置吗?
对于我们来说,仅缓存特定图像非常重要,而且它也很紧急。
答案 0 :(得分:1)
在tomcat应用程序context.xml中添加:
disableCacheProxy="false" securePagesWithPragma="false"
接下来是以下任何一个:
1.使用jsp:
创建一个新的jsp例如。 “nocache.jsp”,内容如下:
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-store"> <!-- HTTP 1.1 -->
<meta http-equiv="Expires" content="0">
将这个jsp包含在你不想缓存的所有jsp中:
<jsp:include page="../nocache.jsp" />
2.使用过滤器:
创建一个新的Filter类 - “CacheHeaderFilter”来处理不要缓存的类,如下所示:
public void doFilter( ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse)response;
httpResponse.setHeader("Cache-Control","no-cache");
httpResponse.setHeader("Pragma","no-cache");
httpResponse.setDateHeader ("Expires", 0);
filterChain.doFilter(request, response);
}
在app web.xml中,配置此过滤器并指定不要缓存的URL,如下所示:
<filter>
<filter-name>CacheFilter</filter-name>
<filter-class>com.org.CacheHeaderFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>`