nginx'干扰'缓存响应?

时间:2016-02-05 20:06:33

标签: spring tomcat nginx spring-security browser-cache

我有一个在Tomcat 7中运行的Spring Web MVC应用程序,在Tomcat前面有nginx 1.1.19。

我已经使用Spring Security启用了Cache-Control:max-age=31536000, must-revalidate,并且标题很好地返回到浏览器。

如果我直接将应用程序运行到Tomcat,一切都按预期工作,静态资源都返回304。

通过nginx运行一些静态资源返回304,一些返回200, all 显示格式正确的Cache-Control标头。我无法在缓存的内容中找到任何模式。

nginx confix非常简单:

location /TSAdmin {
         proxy_pass http://localhost:8030;
         proxy_redirect http://localhost:8030 https://10.10.5.63;
 }

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

这是一个Spring Security配置问题,这两个片段解决了这个问题:

   <http>
      <headers>
         <cache-control disabled="true" />
      </headers>
      <intercept-url pattern="/css/**" access="permitAll" />
      <intercept-url pattern="/frameworks/**" access="permitAll" />
      <intercept-url pattern="/img/**" access="permitAll" />
      <intercept-url pattern="/js/**" access="permitAll" />
      <intercept-url pattern="/fonts/**" access="permitAll" />
      <intercept-url pattern="/images/**" access="permitAll" />
   </http>

   <mvc:resources location="/, /css/" mapping="/css/**" cache-period="31536000" />
   <mvc:resources location="/, /frameworks/" mapping="/frameworks/**" cache-period="31536000" />
   <mvc:resources location="/, /img/" mapping="/img/**" cache-period="31536000" />
   <mvc:resources location="/, /js/" mapping="/js/**" cache-period="31536000" />
   <mvc:resources location="/, /fonts/" mapping="/fonts/**" cache-period="31536000" />
   <mvc:resources location="/, /images/" mapping="/images/**" cache-period="31536000" />

为我们修复了一些事情。