繁体   English   中英

如何强制Nginx在HEAD请求上包含Content-Length标头

[英]How to force nginx to include Content-Length header on HEAD requests

在响应HTTP HEAD请求时,如何配置nginx返回有效的Content-Length标头? 目前,我的服务器返回以下内容:

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的响应一起发送(如果没有,则检查URL的服务将永远不会看到文件已更改,并且不会下载新版本)。 您如何设置?

我可能是错的,但是由于Rails的应用程序服务器生成的动态内容的性质,nginx可能没有显示内容长度。 您可以要求Rails在响应头中发送它。 在Rails应用程序的config/application.rb添加以下中间件:

config.middleware.use "Rack::ContentLength"

这应该返回content-length标头作为响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM