Nginx 开启gzip压缩(图片,文件,css)
gizp配置:
gzip 相关配置可放在 http{}
或 server{}
或 location{}
层级,若不同层级有重复设置优先级为 location{} > server{} > http{}
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缓存(缓存在浏览器中 提高网站性能)
使用场景:对于网站的图片,尤其是新闻站, 图片一旦发布, 改动的可能是非常小的.我们希望 能否在用户访问一次后, 图片缓存在用户的浏览器端,且时间比较长的缓存.
列如:缓存一个小时
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能访问,配置如下:
location ~ /.well-known {
allow all;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?