是否可以更改Apache为access.log文件提供it的位置?
现在我正在获取Cloudflare的IP,因为我使用它们作为代理,以防止我的IP被暴露。唯一的问题是,当Apache返回访问者IP时,它是Cloudflare数据中心的IP。
是否可以使用PHP或在Apache配置文件中将其更改为用户的真实IP?
发布于 2020-08-13 06:11:05
除非您确切了解X-Forwarded-For的工作原理、如何对日志中的数据进行编码以及针对日志使用的任何软件将如何解释结果数据,否则请不要使用X-Forwarded-For。
此标头可以是不存在的,也可以是多值的。The default behaviour (请注意,这不是批准的标准)是将连接IP地址附加到对上游服务器的请求中的代理请求中出现的任何值。每个条目用逗号分隔,然后用空格分隔-默认情况下,在Apache中可用的标准日志格式中,字段用空格分隔。因此,Rich给出的建议将使大多数软件无法读取您的日志文件。
Cloudflare提供头CF-Connecting-IP来指示连接到Cloudflare的地址-这是关于请求来源的可信解析的限制(假设您信任Cloudflare)。如果您的所有流量都来自Cloudflare,那么PHP应该会看到$_SERVER['CF-Connecting-IP']中的值,您应该将其作为%{CF-Connecting-IP}i添加到Apache log format字符串中
https://stackoverflow.com/questions/63384859
复制相似问题