CloudFlare access.log 未更新

CloudFlare access.log 未更新

我最近将我的家庭服务器设置为使用 CloudFlare(Ubuntu Server 16.04.1)。一切似乎都运行良好,非常棒。

然而,我有一个大问题,每次我access.log在 Apache 中检查时,我都发现 CloudFlare 日志根本没有出现或更新。如果我直接连接到我的 IP 地址,access.log 会立即更新,但如果我通过 CloudFlare 域访问我的网站,则文件access.log根本不会更新。

我真的很困惑,因为我不明白这是怎么可能的,我以为 CloudFlare 所做的就是更改传入的 IP,为什么它会阻止我的服务器记录它?

编辑:如果有帮助的话,我还将一堆这样的日志添加到我的access.log文件中,不知道它们是否相关:

::1 - - [12/Dec/2016:13:37:26 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.18 (Ubuntu) (internal dummy connection)"
::1 - - [12/Dec/2016:13:37:27 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.18 (Ubuntu) (internal dummy connection)"
::1 - - [12/Dec/2016:13:37:28 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.18 (Ubuntu) (internal dummy connection)"

答案1

这里有两个主要潜在问题:

  1. 您正在访问缓存资源,但该资源未到达您的源服务器。如果您已设置“缓存所有内容”页面规则,Cloudflare 还将缓存静态 HTML。CF-Cache-Status 标头指示Cloudflare 是否正在缓存资源
  2. 您没有正确记录访问者 IP。在 Apache 上,您应该确保安装 Mod_Cloudflare 扩展以确保您在日志中正确记录访问者 IP。

答案2

当您的网站流量通过 Cloudflare 网络路由时,它们充当反向代理。因此,在响应请求并记录请求时,您的源服务器将返回 Cloudflare IP 地址。

您可以通过启用来在 Apache2 中记录原始访问者 IP 地址mod_remoteip

  1. 启用模块:

    sudo a2enmod remoteip
    sudo service apache2 restart
    
  2. 编辑 vhost 配置文件。默认文件是/etc/apache2/sites-available/000-default.conf。在<VirtualHost *:80>和之间</VirtualHost>添加以下行:

    RemoteIPHeader CF-Connecting-IP
    

相关内容