我们在Pantheon下运行Drupal站点。我们希望保留一个类似于Apache的access.log的日志,显示每个页面命中的REQUEST_URI以及原始IP地址。这样,如果我们观察到有人滥用网站,我们可以回顾日志并获取滥用者的IP地址。我想几乎每个万神殿客户都会想要这种能力,这就是为什么我感到惊讶的是它似乎很难。我希望我只是遗漏了一些明显的东西。我调查了两种可能的途径:
(1)使用nginx-access.log文件。这有我需要的所有信息,除了存储的IP地址是内部万神殿IP地址,如10.223.177.45,而不是原始IP地址。我问万神殿有关获取存储在nginx-access.log中的原始IP地址的支持,并得到了这个回复:
您要求我们更改日志文件的存储方式,而不是 将要发生。这些设置在我们的整个过程中普遍设置 平台。正如我所说,10.223.177.45是一个内部 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); ?>
&#13;
但是我们必须在日志文件已满时旋转它。我想我们可以做到这一点......这只是一个维护麻烦。
之前是否有其他Pantheon客户端遇到此问题,并找到了更简单的解决方案?
答案 0 :(得分:0)
使用简单的规则删除cron上的旧日志文件的解决方案2应该足够好了。
我不是万神殿用户,但如果这样做更简单,也可以使用模块来实现这一目标。 http://drupalnotes.com/post/64855594431/the-search-for-the-ideal-drupal-7-statistics