Apache кеш конкретных изображений и CSS - PullRequest
1 голос
/ 05 ноября 2011

У нас есть веб-сайт, работающий с tomcat и apache, и мы хотим кэшировать только определенные jpg, gif-изображения на уровне apache для снижения нагрузки на tomcat.

Что касается CSS и Javascripts, все они могут быть кэшированы.

При развертывании измененных образов, css и javascript он должен загружаться автоматически.

Я пытаюсь получить эту конфигурацию, но не могу ее найти. Может кто-нибудь поделиться с нами примером конфигурации?

Для нас очень важно кэшировать только определенные изображения, а также срочно.

1 Ответ

1 голос
/ 16 декабря 2011

В приложении context.xml tomcat добавьте:

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);  
    }
    
  • В приложении 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>`
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...