我很想知道如何阻止Apache记录我用CURL搜索的每个URL。
我的PHP脚本打开了几十万个URL,扫描它们,获取一些信息,关闭,然后打开下一个。
我在打开访问日志后发现用CURL打开的每个URL都写入了访问日志。
::1 - - [01/Dec/2010:18:37:37 -0600] "GET /test.php HTTP/1.1" 200 8469 "-"..."
我的访问日志大约是45 MB。帮助任何人?
答案 0 :(得分:3)
这是访问日志的目的 - 记录任何传入流量
为了有效地管理Web服务器,有必要获得有关服务器的活动和性能以及可能发生的任何问题的反馈。 Apache HTTP Server提供了非常全面和灵活的日志记录功能。本文档介绍了如何配置其日志记录功能,以及如何理解日志包含的内容。
来源:http://httpd.apache.org/docs/trunk/logs.html
当然,您可以选择禁用日志记录(最好不要)
答案 1 :(得分:0)
请参阅Apache manual,了解条件日志。这可能就是你要找的东西。
答案 2 :(得分:0)
如果您的所有curl请求来自单个或其他可管理的IP组,您可以使用与以下类似的配置将它们从日志中排除:
# Set your address here, you can do this for multiple addresses
SetEnvIf Remote_Addr "1\.1\.1\.1" mycurlrequest
CustomLog logs/access_log common env=!mycurlrequest
您可以使用用户代理字段执行类似操作,默认情况下会指示它是卷曲的。
您可以在这里阅读更多内容: http://httpd.apache.org/docs/2.2/logs.html#accesslog(条件记录是此标题下的最后一部分) 和这里 http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html#setenvif
如果您想有条件地排除日志记录,我会通过最精确的方法(如ip地址)来实现。如果服务器可从外部访问,您可能不希望发现自己没有记录来自curl的外部请求。
如果要使用多个文件,您可以使用条件记录来分割日志记录,其中一个文件可以更频繁地滚动。这样做的好处是可以节省空间,同时拥有日志数据以帮助研究和调试。