我正在使用在Ubuntu 12.04.4上运行的Nginx 1.4.4.
Nginx反向代理Rails应用服务器集群.
静态文件(主要是资产)直接提供,无需访问应用程序服务器.
我已将其设置为gzip响应并在可用时使用预压缩文件.
http {
gzip on;
gzip_http_version 1.0;
gzip_proxied any;
# other ngx_http_gzip_module directives...
server {
# proxy configuration
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
# root is inherited
try_files $uri =404;
error_page 404 /404.html;
}
}
}
这很有效.
我使用真正的预压缩资产和具有相同名称但内容不同的虚拟非压缩资产对其进行了测试:
/assets/application-a45d6...e2593.css # dummy content
/assets/application-a45d6...e2593.css.gz # real CSS
我可以看到打开和关闭gzip_static会导致Nginx正确地提供文件的预期版本.
到现在为止还挺好.
但是,此设置仅在文件的非压缩版本也存在时才有效.仅具有预压缩版本将导致404.
gzip_static
With the “always” value (1.3.6),gzipped file is used in all cases,without checking if the client supports it. It is useful if there are no uncompressed files on the disk anyway or the ngx_http_gunzip_module is used.
(是的:我已经尝试过两次,并且我也尝试过添加gunzip.没有任何改变)
它似乎表明只有压缩版本的文件是可以的.这是真的吗?我的配置有什么问题吗?
最佳答案