恢复原始访问者 IP - 选项 1:安装 mod_cloudflare

了解如何安装 mod_cloudflare,并在您的源站服务器上记录访问者的原始 IP地址。了解如何删除 mod_cloudflare。 


概述

自 Linux 操作系统版本 Debian 9Ubuntu 18.04 LTS 起,Cloudflare 不再更新和支持 mod_cloudflare。对于使用 Apache Web 服务器的客户,我们现在支持 mod_remoteip。有兴趣构建 mod_cloudflare 程序包的客户可以从 GitHub 下载代码库

您的网站流量路由经过 Cloudflare 时,我们充当反向代理。这允许 Cloudflare 通过更有 效地路由数据包并缓存静态资源(图片、JavaScript、CSS 等)来加快页面加载时间。因此,在响应和记录请求时,您的源站会返回 Cloudflare IP 地址

例如,如果您安装了依赖于原始访问者的传入 IP 地址的应用程序,则默认情况下会记录 Cloudflare IP 地址。原始访问者 IP 地址显示在名为 CF-Connecting-IP 的附加 HTTP 标头中。借助 mod_cloudflare 工具,您可以在源站服务器上记录原始访问者 IP 地址。

下图演示了使用和不使用 Cloudflare 处理 IP 地址的不同方式。

200170916_mod_cloudflare.png


安装 mod_cloudflare

mod_cloudflare 的安装方式有两种:从我们的技术资源下载数据包或脚本,或者将代码添加到您的源站 Web 服务器。

下载数据包或脚本

使用数据包或脚本安装 mod_cloudflare 时有四个选项:

1.程序包

程序包仅适用于 Linux 操作系统版本 Debian 9Ubuntu 18.04 LTS

2.通过 cPanel 服务器

3.手动安装:RedHat/CentOS/CloudLinux

4.手动安装:Debian/Ubuntu

如需这四个选项的更多信息,请查阅我们 Downloads 页面上所述的安装步骤。

如果您使用 Joyent 计算机,请参考此第三方教程

添加代码到您的源站 Web 服务器

如果您无法安装 mod_cloudflare,或者没有适合的 Cloudflare 插件可供您的内容管理平台恢复原始访问者 IP,请在您的源站 Web 服务器上将以下代码添加到需要原始访问者 IP 的任何页面的 <body> 标记内或前面:

<?php if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
这仅会将 IP 地址提供给需要的脚本。不会将 IP 存储到实际的服务器日志。

删除 mod_cloudflare

Apache

要删除 mod_cloudflare,您应当注释掉加载 mod_cloudflare 的 Apache 配置行。

这根据您的 Linux 发行版而有不同;但对大多数用户而言,在 /etc/apache2 中查找就能搜索到这一行:

LoadModule cloudflare_module

注释掉或删除这一行,然后重启 Apache,mod_cloudflare 应该会消失。

如果运行的是 Ubuntu 或 Debian,您应该会看到

file/etc/apache2/mods-enabled/cloudflare.load

删除此文件来移除 mod_cloudflare,然后重启 Apache。

Nginx

mod_cloudflare 是通过修改 Nginx 配置文件 nginx.conf 中的 ngx_http_realip_module 来安装的

要删除 mod_cloudflare,您应当注释掉或删除这一行,然后重启 Nginx,mod_cloudflare 应该就会消失

要从其他类型的 Web 服务器删除 mod_cloudflare,请在 Web 服务器文档中查询删除模块的方法。

相关资源

Not finding what you need?

95% of questions can be answered using the search tool. This is the quickest way to get a response.

由 Zendesk 提供技术支持