gpt4 book ai didi

spring - nginx 'interfering' 缓存响应?

转载 作者:行者123 更新时间:2023-11-28 22:52:47 25 4
gpt4 key购买 nike

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

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

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

通过 nginx 运行一些静态资源返回 304,一些返回 200,所有 显示格式正确的 Cache-Control header 。我在缓存和未缓存的内容中找不到任何模式。

nginx 的配置非常简单:

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

如有任何想法,我们将不胜感激。

最佳答案

这原来是一个 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" />

为我们解决了问题。

关于spring - nginx 'interfering' 缓存响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35232614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com