【发布时间】:2020-10-28 16:20:37
【问题描述】:
我制作了一个简单的应用程序,在响应标头中设置Cache-Control: public, immutable, max-age=3600。此应用程序故意缓慢(睡眠 2)以重现该问题。
我的目标是了解我是否可以使用 Heroku 对来自我的慢速(与缓存服务器相比)原始 Heroku 应用程序的 API 响应进行短期 HTTP 缓存。
据我所知,Heroku 在我的 Heroku 应用程序前面没有任何类型的 HTTP 缓存。
实际行为:
每个请求都会命中 origin/Heroku 应用:
$ curl https://cachecontroltest123.herokuapp.com/ --head
HTTP/1.1 200 OK
Connection: keep-alive
Cache-Control: public, immutable, max-age=3600
Content-Type: text/html;charset=utf-8
Content-Length: 12
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Server: WEBrick/1.4.2 (Ruby/2.6.6/2020-03-31)
Date: Sat, 24 Oct 2020 09:28:51 GMT
Via: 1.1 vegur
预期行为:
在第一次请求之后,Heroku 必须缓存响应,并在接下来的一小时内提供它,而不会到达(慢)源。
我可以在 Stackoverflow 上找到一些相关问题,每个问题都说 Heroku 在每个应用程序前面都有一个 Varnish HTTP 缓存服务器集群,但这些答案已经很老了。 从那以后有什么变化吗?
【问题讨论】:
标签: heroku http-headers reverse-proxy cdn http-caching