【问题标题】:Exclude apache logging of map tiles only from error_log仅从 error_log 中排除地图图块的 apache 日志记录
【发布时间】:2015-10-15 22:01:02
【问题描述】:

我的服务器为覆盖有限区域的地图提供地图图块。 目前,对不在地图区域内的图块的每个请求都会产生一个 apache 的 error_log 中的“文件不存在”消息。这是没用的 信息并极大地混淆了error_log - 所以找到 “真正的”错误很难,需要通过grep等过滤, 除了创建异常大的error_log。但我确实想要 出现在 apache 的 access_log 中的有效请求,因为我想计算 他们来确定使用情况。

我还没有找到任何合理的解决方案可以让我 从 error_log 中排除无效的磁贴请求,同时保留有效的磁贴请求 在 access_log 中。阅读 apache 文档并在线搜索, 我发现的“解决方案”是

() 使用 apache "SetEnvIf" 指令将环境变量设置为 由“CustomLog”使用 - 但这会将选定的文件排除在 两个日志。 “ErrorLog”不能使用环境变量

() 使用“RewriteCond”和“RewriteRule”为 “无效”请求。大概这会起作用,但需要 创建大量“无效文件”表达式 - 我假设 这么长的过滤器列表会降低服务器性能 对于所有文件。这似乎不切实际。

(对于那些不知道的人,图块存储在目录金字塔中, 表示缩放级别和嵌套子目录的最顶层目录 代表 x/y 位置,产生请求 ala .../TILES/10/167/403.png。所以像我这样的部分区域覆盖图 类似于“稀疏”数组,因为有许多不存在的 地图显示应用程序可能会尝试访问的任何级别的子目录。]

我希望得到一些相对简单的解决方案。我有一点 惊讶于仅从 error_log 中排除文件似乎不是 可能,因为我认为我的情况并不少见。

稍后 - 虽然关于是否有办法将所有 TILE 请求发送到单独的访问/错误日志组合 - 然后我可以访问前者并忽略后者。但据我所知,错误消息必须全部放在一个文件中。

甚至后来 - 发现这个,如果放在我的 TILES 目录中的 .htaccess 文件中,而不是在 apache 配置文件中,这似乎是一个可行的解决方案 I want "File does not exist" errors to be ignored or not logged

【问题讨论】:

    标签: apache error-log


    【解决方案1】:

    根据我上次添加的内容,我将以下内容放入我的 TILES 目录中的 .htaccess 文件中,并且丢失的 tile 文件不再添加到 error_log 中

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^.*$ - [G,L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-21
      • 1970-01-01
      • 2013-09-12
      相关资源
      最近更新 更多