如何配置nginx在响应HTTP Content-Length
请求时返回有效的HEAD
标头?目前我的服务器返回:
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
标头以及对HEAD
的回复(如果我不这样做,检查该网址的服务永远不会看到该文件已更改,不会下载新版本)。你是如何设置它的?
答案 0 :(得分:2)
我可能错了,但由于Rails应用服务器生成的动态内容的性质,nginx可能没有显示内容长度。
你可以要求Rails在响应头中发送它。在您的Rails应用程序config/application.rb
中添加以下中间件:
config.middleware.use "Rack::ContentLength"
这应该返回content-length
标题作为回应。