【问题标题】:Does Heroku have reverse proxy cache?Heroku 有反向代理缓存吗?
【发布时间】: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


    【解决方案1】:

    Heroku 不做任何 HTTP 缓存。

    这个任务要么在你的应用程序中完成(在测功机中,要么由你的框架或类似 Varnish/Nginx 的东西), 或者对于更重的负载,通过放在 Heroku 应用程序前面的 CDN(FastlyCloudFrontCloudflare)。

    还有简化 AWS Cloudfront 配置的 Edge Heroku add-on

    【讨论】:

    • 感谢 Edge 插件,我不知道。
    猜你喜欢
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 2011-06-27
    相关资源
    最近更新 更多