如何配置 nginx 在响应 HTTP HEAD
请求时返回有效的 Content-Length
header ?目前我的服务器返回这个:
curl --head http://example.com/myfile.xml
HTTP/1.1 200 OK
Date: Tue, 23 Aug 2016 13:49:46 GMT
Content-Type: text/xml
Set-Cookie: __cfduid=da2daeaa59809916192f7ac0645d3a3e91471960186; expires=Wed, 23-Aug-17 13:49:46 GMT; path=/; domain=.example.com; HttpOnly
Last-Modified: Mon, 22 Aug 2016 16:20:26 GMT
Vary: Accept-Encoding
ETag: W/"57bb264a-5442b26a"
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
Access-Control-Allow-Origin: *
Access-Control-Request-Method: *
Cache-Control: public
Server: cloudflare-nginx
CF-RAY: 9dac40-LHR
X-Cache: MISS from Squid
Via: 1.1 Squid (squid/3.2.14)
我必须发送Content-Length
header 和对HEAD
的响应(如果我不这样做,检查该URL 的服务永远不会看到文件被更改,也不会下载新版本)。如何设置?
最佳答案
我可能是错的,但由于 Rails 的应用程序服务器生成的动态内容的性质,nginx 可能不会显示内容长度。
您可以要求 Rails 在响应 header 中发送它。在 Rails 应用程序的 config/application.rb
中添加以下中间件:
config.middleware.use "Rack::ContentLength"
这应该在响应中返回 content-length
header 。
关于ruby-on-rails - 如何强制 nginx 在 HEAD 请求中包含 Content-Length header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39103178/