无法允许/拒绝对IP的访问

我有一个在Ubuntu 14.04上工作愉快的服务器。 我试图限制访问一个文件使用允许/拒绝块:

<Files "login.php"> order deny,allow deny from all allow from 22.123.123.12 </Files> 

这成功地拒绝了所有的用户,并告诉他们“禁止,您没有权限访问…”。 如果我删除“拒绝所有”行,它允许我查看login屏幕。

但是无论我做什么,debugging,我都无法让我查看这个文件,当我使用这个IP地址。 '允许'的声明似乎从来没有工作。

一些debugging已经试过了:

  • 我尝试添加一个AllowOverride All到我的主机configuration,以确保文件/授权模块本身工作。
  • 我已经尝试了一堆其他允许/拒绝语句
  • 这个语句目前在一个.htaccess文件中,但我试过将它移到主机configuration中,这也不起作用。

其他可能相关的信息:

  • 我已经使用了一点PHP来输出我的IP在网页上:它被成功识别为22.123.123.12。
  • 我在网页上使用了SSL,因此我正在通过https://example.com/login.php访问该文件。 不知道这是否会影响事情。

我开始怀疑,由于某种原因,服务器不认为我在这个IP地址,但无法弄清楚是怎么回事。 有任何想法吗?

感谢@ ChrisLam的评论,我意识到访问日志中显示的IP地址与我当前的IP不一样。

这个IP,108.162.225.167似乎与我们用来加速网站的CloudFlare.com的服务器相匹配。

虽然有一个规则设置为不caching这个页面,但是请求的IP地址仍然没有被传回服务器。 CloudFlare说:

“由于CloudFlare是代理服务器,因此您会注意到您的网站访问者的IP地址在服务器日志和Web应用程序中的显示方式发生了变化,特别是所有访问似乎都来自CloudFlare IP地址。

为Apache httpd安装CloudFlare的mod_cloudflare模块可以将这些IP地址传回服务器,并且完美解决了我的问题。

下载和CloudFlare的网站上提供的信息: https : //www.cloudflare.com/resources-downloads#mod_cloudflare