【问题标题】:How can I log originating IP addresses under Pantheon?如何在 Pantheon 下记录原始 IP 地址?
【发布时间】:2015-04-23 17:06:56
【问题描述】:

我们有一个 Drupal 站点在 Pantheon 下运行。我们希望保留一个类似于 Apache 的 access.log 的日志,显示每个页面命中的 REQUEST_URI 以及原始 IP 地址。这样,如果我们观察到有人滥用该网站,我们可以通过日志回顾并获取滥用者的 IP 地址。我想几乎每个万神殿客户都想要这种能力,这就是为什么我很惊讶它似乎如此困难。我希望我只是错过了一些明显的东西。我研究了两种可能的途径:

(1) 使用 nginx-access.log 文件。这包含了我需要的所有信息,除了存储的 IP 地址是内部 Pantheon IP 地址(例如 10.223.177.45),而不是原始 IP 地址。我向 Pantheon 支持部门询问了有关获取存储在 nginx-access.log 中的原始 IP 地址的问题,并得到了以下回复:

您要求我们更改日志文件的存储方式,这不是 将要发生。这些设置在我们的整个 平台。正如我所说,10.223.177.45 是一个 internal IP 地址 来自万神殿。

没有办法做到这一点。

我很难相信“没有办法做到这一点”,因为原始 IP 地址是通过 PHP 提供的 $_SERVER["REMOTE_ADDR"]。显然,他们有这些信息,但由于某种原因不想将其存储在 nginx-access.log 中。

(2) 从 PHP 构建我们自己的日志文件,存储 $_SERVER["REMOTE_ADDR"]$_SERVER["REQUEST_URI"]。我们已经在sites/default/settings.php 中有一堆自定义代码,我们可以添加一些使用file_put_contents 的内容来向日志文件添加一行。也许是这样的:

<?php file_put_contents('sites/default/files/private/access.log', $_SERVER['REMOTE_ADDR'] . ' ' . date('Y-m-d H:i:s') . ' ' . $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI'] . "\n", FILE_APPEND); ?>

但是,当日志文件已满时,我们必须轮换该日志文件。我想我们可以做到……这只是一个维护麻烦。

之前有没有其他 Pantheon 客户端遇到过这个问题,并找到了更简单的解决方案?

【问题讨论】:

    标签: nginx logging pantheon


    【解决方案1】:

    使用简单规则删除 cron 上的旧日志文件的解决方案 2 应该足够了。

    我不是万神殿用户,但如果那“更简单”,也可以使用模块来做到这一点 http://drupalnotes.com/post/64855594431/the-search-for-the-ideal-drupal-7-statistics

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-20
      • 2021-01-23
      • 2018-04-26
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      相关资源
      最近更新 更多