【发布时间】:2012-05-24 13:07:48
【问题描述】:
我的 Rails 3.2 应用程序使用——通过#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 也不会传播到客户端:请求是无条件生成的,响应永远不会包含正确的标题。
【问题讨论】:
-
也许这条指令可以解决问题:ignore_invalid_headers off; (我知道你的标题不是无效的......)
标签: ruby-on-rails nginx http-headers unicorn