1Panel
1Panel copied to clipboard
[FEATURE]开启CDN后网站日志只显示CDN回源IP
1Panel 版本
v1.10.7-lts
请描述您的需求或者改进建议
如题,开启CDN以后网站日志就变成下面这样的内容: 163.181.146.187 - - [10/May/2024:14:20:12 +0000] "GET /admin/?m=admin HTTP/1.1" 200 1895 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
前面的163.181.146.187就是阿里云CDN的回源IP,而并非访问用户IP。
请描述你建议的实现方案
真实的用户IP都在这个HTTP头中: set_real_ip_from 0.0.0.0/0; real_ip_header X-Forwarded-For;
1Panel可以先获取一下存不存在这个HTTP头信息,如果存在则在网站日志中显示real ip。 如果HTTP头中不存在上面那些参数,则就按照标准信息返回。
就类似BT一样。
附加信息
No response
可以增加一下这个配置 保存之后访问 网站然后查看 每行日志的最后的 IP 是不是真实 IP 如果是 可以修改 OpenResty 配置文件
log_format 来调整日志中真实 IP 的位置
嗯,主要是想像BT一样。 存在CDN就获取真实IP,然后日志就显示真实的IP。 不存在真实IP,就按照标准格式来显示。 这样弄也行,就是不符合正常阅读习惯。 如果把真实IP改到前面,没开CDN的站点就直接获取不到IP了,很麻烦。 不如1Panel内置给改了。
能否贴一下 宝塔 的设置页面
能否贴一下 宝塔 的设置页面
宝塔里面,只需要修改一下Nginx设置,在Nginx中加上这样一段代码就可以实现:
这样就是开启CDN以后会自动显示真实的IP地址。 如果网站没有开启CDN也不会显示空白信息,显示的还是用户的访问IP地址。
能否贴一下 宝塔 的设置页面
宝塔里面,只需要修改一下Nginx设置,在Nginx中加上这样一段代码就可以实现:
这样就是开启CDN以后会自动显示真实的IP地址。 如果网站没有开启CDN也不会显示空白信息,显示的还是用户的访问IP地址。
在 1Panel 中增加这段配置 IP 会空白是吗
能否贴一下 宝塔 的设置页面
宝塔里面,只需要修改一下Nginx设置,在Nginx中加上这样一段代码就可以实现:
这样就是开启CDN以后会自动显示真实的IP地址。 如果网站没有开启CDN也不会显示空白信息,显示的还是用户的访问IP地址。
在 1Panel 中增加这段配置 IP 会空白是吗
不会是空白,但是有个问题就是。 每次更新或者重载,再或者更新1P的时候会导致配置丢失。 如果能内置一个开启功能会方便很多,不用每次手动加进去。 手动加有点麻烦。
能否贴一下 宝塔 的设置页面
宝塔里面,只需要修改一下Nginx设置,在Nginx中加上这样一段代码就可以实现:
这样就是开启CDN以后会自动显示真实的IP地址。 如果网站没有开启CDN也不会显示空白信息,显示的还是用户的访问IP地址。
在 1Panel 中增加这段配置 IP 会空白是吗
不会是空白,但是有个问题就是。 每次更新或者重载,再或者更新1P的时候会导致配置丢失。 如果能内置一个开启功能会方便很多,不用每次手动加进去。 手动加有点麻烦。
不同 CDN 的配置可能不一样,所以暂时还是需要手动配置的
可以增加一下这个配置 保存之后访问 网站然后查看 每行日志的最后的 IP 是不是真实 IP 如果是 可以修改 OpenResty 配置文件
log_format 来调整日志中真实 IP 的位置