对于反向代理,Nginx在这里只扮演代理的角色。
要使反向代理的Nginx支持206 Partial Content,可以这么做:
- 在Nginx配置location块,添加以下配置开启范围请求支持:
location / {
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
}
这会将Range和If-Range请求头传递给后端服务器。
- 确保后端服务器能处理范围请求并返回206状态码。
- 在Nginx访问日志中,添加$upstream_http_content_range变量来记录后端响应的Content-Range头信息。
log_format main '$upstream_http_content_range';
- Nginx接收到后端的206响应后,会将Content-Length和Content-Range头原封不动地传递给客户端。
这样Nginx就只负责透传范围请求和响应头,而不用自己处理字节内容。
主要还是依赖于后端应用服务器实现部分内容支持,Nginx仅作为代理传递范围请求和响应头。