Nginx 开启gzip压缩(图片,文件,css)

gizp配置:

gzip 相关配置可放在 http{} server{} location{} 层级,若不同层级有重复设置优先级为 location{} > server{} > http{}

Copy Highlighter-hljs
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; #gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; gzip_vary off; gzip_disable "MSIE [1-6]\.";

注释:

第1行:开启Gzip

第2行:不压缩临界值,大于1K的才压缩,一般不用改

第3行:压缩结果数据流存储所用空间,下面表示以16k为单位,按照原始数据大小以16k为单位的4倍申请内存。默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。

第4行:采用http协议版本 默认是1.1 ,对于1.0的请求不会压缩,如果设置成1.0,表示http1.0以上 的版本都会压缩。(如果使用了proxy_pass 进行反向代理,那么nginx和后端的 upstream server之间默认是用 HTTP/1.0协议通信的。)

第5行:压缩级别,1-10,数字越大压缩的越好,时间也越长,看心情随便改吧

第6行:进行压缩的文件类型,缺啥补啥就行了,JavaScript有两种写法,最好都写上吧,总有人抱怨js文件没有压缩,其实多写一种格式就行了

第7行:代理缓存压缩和原始版本资源,避免客户端因Accept-Encoding不支持gzip而发生错误的现象(现在一般都采用gzip)

第8行:禁止IE6进行gzip压缩

nginx中的expires缓存(缓存在浏览器中 提高网站性能)

使用场景:对于网站的图片,尤其是新闻站, 图片一旦发布, 改动的可能是非常小的.我们希望 能否在用户访问一次后, 图片缓存在用户的浏览器端,且时间比较长的缓存.
列如:缓存一个小时

Copy Highlighter-hljs
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ttf|woff|pdf|doc|docx|PNG|JPG|JPEG|ico)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; }

(注意:服务器的日期要准确,如果服务器的日期落后于实际日期,可能导致缓存失效)

nginx 禁止了.开头文件或目录访问,配置来设置允许.well-known能访问,配置如下:

Copy Highlighter-hljs
location ~ /.well-known { allow all; }
posted @   caibaotimes  阅读(1011)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示