记录一些需要注意的点
当客户端开启缓存,请求时候带着Status Code:304 Not Modified的时候,lua不会走body_filter_by_lua阶段,而header_filter_by_lua阶段依然会经历,但是通过ngx.resq.get_headers()获取的值是nil
Nginx使用Chunked可以手动开启,在header_filter_by_lua阶段添加ngx.header.content_length = nil
Nginx使用Chunked拆分数据是在head_filter_by_lua和body_filter_by_lua阶段之间, 所以不管是否是Chunked的形式返回给客户端,都可以通过ngx.resq.get_headers()[‘Content-Length’]获取到返回给用户的实际文件大小(未经gzip压缩)
可以在log_by_lua阶段通过ngx.var.body_bytes_sent获取Nginx返回给客户端的实际大小(gzip压缩之后实际字节数)
microsoft 使用的xlsl,docx文件都是zip压缩格式的文件
如果响应body被nginx的gzip压缩,header里面会有Content-Encoding: gzip字段
评论
暂无评论~~