如何告诉 gzip_static 不寻找图像文件?

2024-02-10

我安装了 nginx,并激活了 gzip_static。它适用于 CSS 和 JavaScript 文件,但它也会查找图像文件的 gzip 压缩版本,例如 .png 和 .gif,尽管这些文件不在要压缩的文件列表中:

# strace -p 25044 2>&1 | grep gz
open("/var/www/css/ymax.css.gz", O_RDONLY|O_NONBLOCK) = 438
open("/var/www/images/tools.png.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/images/ads/bs.gif.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/images/gfxborder/border_right.gif.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/images/ads/hocuto03.gif.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)

这是我的 nginx 配置:

gzip  on;
gzip_disable     "msie6";
gzip_min_length 1000;
gzip_types text/plain text/css application/x-javascript text/javascript;
gzip_static on;

有办法防止这种情况吗?


我找到了解决方案。事实上,有两种可能的解决方案:

  1. 将 javascript 和 CSS 文件保存在单独的目录中,并创建“位置”规则以仅对该目录使用 gzip_static

  2. 如果这是不可能的(托管多个网站,并非所有内容都在您的控制之下,目录和文件太多),有一个更简单的解决方案可以通过使用来防止多次 open() 调用打开文件缓存错误 http://wiki.nginx.org/HttpCoreModule#open_file_cache_errors设置缓存(即记住).gz 文件不存在并且不会尝试再次打开它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何告诉 gzip_static 不寻找图像文件? 的相关文章

随机推荐

  • 如何使用 blazor 读取剪贴板?

    我正在使用具有截屏功能的 Blazor Server 应用程序 我的目标是从剪贴板获取数据 我谈论的不仅是简单的文本 而且总体上是一些图像 文件 文本等 我有一个名为ClipboardService它使用Microsoft JSIntero
  • 如何在 C# 中读取 html 表 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions table thead tr td
  • Clojure 中的数字是否按区间排列?

    有没有比以下更好的方法 defn in interval Returns a predicate that tests if its argument falls in the inclusive interval a b a b fn x
  • 绘制箱线图时如何处理 NaN 值

    我正在使用 matplotlib 绘制框图 但有一些缺失值 NaN 然后我发现它不显示具有 NaN 值的列内的方框图 你知道如何解决这个问题吗 这是代码 import numpy as np import matplotlib pyplot
  • Python套接字无法正确关闭连接

    我是套接字编程的新手 遇到了一个令人费解的问题 我有一个 Windows 程序 我无法更改它 专有软件 但它尝试使用 tcp 套接字连接到特定的 ip 和端口 在我的 linux 机器上 我编写了一个小 python 脚本来为 win pr
  • 删除具有特定值的字典键[重复]

    这个问题在这里已经有答案了 我知道字典不应该以这种方式使用 因此没有内置函数可以帮助执行此操作 但我需要删除字典中具有特定值的每个条目 所以如果我的字典看起来像 NameofEntry1 0 NameofEntry2 DNC 我需要删除 可
  • 如何使用 rspec + capybara 重用不同功能中的场景

    假设我有一些场景想要在不同的上下文或 功能 下进行测试 例如 我有一些场景涉及用户访问某些页面并期望某些 ajax 结果 但是 在不同的条件或 功能 下 我需要执行不同的 后台 任务来更改应用程序的状态 在这种情况下 我需要一遍又一遍地运行
  • 如何使用 Retrofit 2 处理错误响应?

    如何使用 Retrofit 2 处理错误响应同步要求 我需要流程响应 在正常情况下返回 pets 数组 如果请求有错误参数 则返回错误 json 对象 我该如何处理这两种情况 我正在尝试使用this https futurestud io
  • 使用 docker 构建时出现“程序不包含适合入口点的静态‘Main’方法”,为什么?

    我在使用 Docker 时遇到问题 但找不到合适的解决方案 我正在尝试使用 NET SDK 2 1 构建 Docker 映像 问题是 当 Docker 尝试运行构建语句时 它失败了 错误输出是 CSC 错误CS5001 程序不包含静态 Ma
  • CMD.exe:将第二列输出获取到变量

    我需要以下命令第二列输出
  • 如何检查字符串是否包含两个星号字符?

    我们有一个字符串输入 以下组合是有效的 例如sunday sunday sun day sun day su nda y 如果它只包含一个星号 那么它是一个错误的输入 因此 鉴于上述输入 我如何检查字符串是否包含多个星号 int aster
  • md-grid-tile(角度材质)中的文本对齐不起作用

    text align在角材料中
  • 在 Excel VBA 项目中匹配相似但不完全相同的文本字符串

    好吧 我一直在努力寻找解决方案 但似乎找不到解决方案 我什至无法正确分解问题 这就是想法 我有两张有很多行的表 一张有 800 另一张有 300 000 每行包含一个名称列 然后包含有关该名称的信息的几列 每张纸都有不同种类的信息 我想根据
  • 如何在离子模拟器中观看console.logs?

    我正在使用以下方式构建一个应用程序离子框架 http ionicframework com 到目前为止我已经在浏览器中完成了 因为我现在想使用cordovaOauth 插件 https github com nraboy ng cordov
  • React Native 选择器未在 Android 中显示

    我正在尝试在 React Native Android 中添加选择器 但它没有在 Android 中显示 我将我的位置日期映射到选择器项目 但我在屏幕上没有看到选择器
  • mySQL 查询在数据库中的所有表中搜索字符串?

    是否有一个 mySQL 查询来搜索数据库中的所有表 如果没有 您可以从 mySQL 工作台 GUI 搜索数据库中的所有表吗 phpmyadmin 有一个搜索面板 您可以使用选择所有表来搜索 我发现这非常有效 因为我正在使用的电子商务包 ma
  • 如何在本地打开经典 ASP 网站并在 Visual Studio 中附加到它?

    也许我还没有找到合适的帖子 但我一直无法为 ASP 网站设置调试 该网站正在我们的服务器上运行 但我被告知要在本地附加到它 不幸的是 我不知道如何做到这一点 我在源代码管理中有该网站的本地副本 可以在 Visual Studio 中打开它
  • 在存储库中添加 .gitconfig 会覆盖我的全局 .gitconfig 文件配置吗?

    我的项目托管在 TFS GIT 服务器中 我在 TFS 上合并拉取请求时遇到问题 一种选择是更新 TFS 服务器本身上的 git 配置以进行 合并 no ff 因为时间紧迫和其他无法尽快完成的问题 我正在寻找解决此问题的方法 如果我将 gi
  • 如何在选择文本时触发事件,例如启动应用程序

    我想知道当在浏览器 消息等任何应用程序中选择文本时是否可以启动活动或应用程序 就像当我们在任何地方选择一个文本时 会出现一个小弹出窗口 提到剪切 复制 粘贴选项 我可以在那里添加另一个按钮吗 启动我的应用程序 如果可以 请指导我如何做到这一
  • 如何告诉 gzip_static 不寻找图像文件?

    我安装了 nginx 并激活了 gzip static 它适用于 CSS 和 JavaScript 文件 但它也会查找图像文件的 gzip 压缩版本 例如 png 和 gif 尽管这些文件不在要压缩的文件列表中 strace p 25044