如果宝塔面板建站之后,给站点挂上cf cdn,那么日志中获取的IP都是cloudflare的代理IP。如何获取真实的用户IP呢,本文提供两种方法。
1、代码
可以在nginx设置中添加2行代码来获得用户的真实访问IP,代码如下:[reply]
set_real_ip_from 0.0.0.0/0; #保留为0表示获取全网段IPreal_ip_header X-Forwarded-For; #heade报头信息
[/reply]
1.1如何放置呢?
如何放置代码,我们如果使用的是宝塔nginx版本,那么可以在“软件管理”→“运行环境”→“Nginx
”打开配置文件在http
{ }
后加入上述代码即可,如图:
1.2注意:
这里介绍的是宝塔面板的nginx设置,如果是其他lnmp的环境,可以根据自己的环境找到nginx.conf。
- 宝塔
Nginx
的配置文件位置:/www/server/nginx/conf/nginx.conf
一般lnmp的
Nginx
的配置文件位置:/usr/local/nginx/conf/nginx.conf
2、防火墙设置
用代码的方法,可能兼容性不太好,所以,我们还可以轻松愉快的用宝塔面板自带的免费防火墙来设置以获取真实的用户IP。
2.1安装免费版本防火墙
这个以前讲过的,可以看文章“宝塔面板第三方应用 – Nginx免费防火墙的试用教程”。安装好之后,还需要简单的设置,看下面。
2.2开启使用CDN
开启的步骤,打开防火墙之后:“站点配置”→“设置”→“使用CDN”点击使用即可。如图:
这样启用之后,即可获取用户真实的访问IP。
3、效果测试
查看自己的网站日志,宝塔面板的网站日志路径:“/www/wwwlogs”。
3.1没使用任何手段之前
3.2使用代码或者防火前开启cdn之后
已经可以获得真实的用户IP了。
4、最后
如果你是专业版的用户,那么可以安装专业版防火墙也是有同样的功能的,如图:
其实免费版用用也足够了。以上方法不仅使用于cloudflare,也适用其他任何cdn商家。比如说,七牛、又拍云、百度云加速等等。
评论前必须登录!
注册