Stay Hungry.Stay Foolish.
Nginx + Lua 使用总结

记录一些需要注意的点

  1. 当客户端开启缓存,请求时候带着Status Code:304 Not Modified的时候,lua不会走body_filter_by_lua阶段,而header_filter_by_lua阶段依然会经历,但是通过ngx.resq.get_headers()获取的值是nil

  2. Nginx使用Chunked可以手动开启,在header_filter_by_lua阶段添加ngx.header.content_length = nil

  3. Nginx使用Chunked拆分数据是在head_filter_by_lua和body_filter_by_lua阶段之间, 所以不管是否是Chunked的形式返回给客户端,都可以通过ngx.resq.get_headers()[‘Content-Length’]获取到返回给用户的实际文件大小(未经gzip压缩)

  4. 可以在log_by_lua阶段通过ngx.var.body_bytes_sent获取Nginx返回给客户端的实际大小(gzip压缩之后实际字节数)

  5. microsoft 使用的xlsl,docx文件都是zip压缩格式的文件

  6. 如果响应body被nginx的gzip压缩,header里面会有Content-Encoding: gzip字段

自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
评论

暂无评论~~