我们正在运行 Nginx 0.7.65[-1ubuntu2.3]。我刚刚注意到,当使用指令alias
和提供本地静态文件时gzip on
,Content-Length
标头不会被发送。由于它从本地文件系统提供文件,因此获取长度应该不会有任何问题。我如何强制 Nginx 发送Content-Length
带有这些文件的标头?
答案1
答案2
以下是添加x-file-size
标头的高性能 Nginx 解决方案:
https://github.com/AnthumChris/fetch-progress-indicators/issues/13
## Nginx Lua module must be installed https://docs.nginx.com/nginx/admin-guide/dynamic-modules/lua/
## https://github.com/openresty/lua-nginx-module#header_filter_by_lua
header_filter_by_lua_block {
function file_len(file_name)
local file = io.open(file_name, "r")
if (file == nil) then return -1 end
local size = file:seek("end")
file:close()
return size
end
ngx.header["X-File-Size"] = file_len(ngx.var.request_filename);
}