我的 Rails 3.2 应用程序使用 - via #stale?
-If-Modified-Since
请求中的 HTTP 标头和Last-Modified
响应中的标头来决定它是否应该动态生成一些数据。这在开发中非常有效(无论是使用 webrick 还是 unicorn_rails),这curl -D headers.txt
表明如果If-Modified-Since
提供了正确的值,则会发送 304 响应,而Last-Modified
标头会随请求数据一起发送。
不幸的是,一旦部署在 nginx 后面,If-Modified-Since
(提供正确的标头值)都不会传递给 unicorn——因此也不会传递给 Rails 应用程序——也不会Last-Modified
传播到客户端:请求是无条件生成的,并且响应永远不会包含正确的标头。