Twikoo 在多吉云CDN场景下获取访客真实IP的解决方案

AI-摘要
切换
Tianli GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
Twikoo 在多吉云CDN场景下获取访客真实IP的解决方案
Elykia这是去年遇到的问题了,虽然当时很快解决了,但一直没时间水一篇文章,就这么拖到了现在。今天终于抽空,把这个小坑记录一下。
遇到的问题
部署 Twikoo 评论系统后,加了 CDN(多吉云),想着加速一下访问速度,结果评论里的用户 IP 地址不对了,显示的是 CDN 节点的 IP。
排查后发现,问题出在CDN 转发时,后端拿到的是节点 IP,而不是访客真实 IP。
解决方法
当时我在Github上提了一个 issue ,很快得到了作者 imaegoo 大佬的回复指导,解决过程也很简单,总结下来:
🔹 CDN 通常会把访客真实 IP 加到一个请求头里,比如 X-Forwarded-For
。
🔹 只需要告诉 Twikoo 从正确的请求头里取 IP 就行了。
比如:
腾讯云 EdgeOne 的访客 IP 放在
EO-Client-IP
,配置:1
TWIKOO_IP_HEADERS=["headers.eo-client-ip"]
而我用的是 多吉云,默认是
X-Forwarded-For
,所以配置成:1
TWIKOO_IP_HEADERS=["headers.x-forwarded-for"]
⚠️ 注意:格式是 "headers.x-forwarded-for"
,不是 "X-Forwarded-For"
!
添加环境变量
如果你的 Twikoo 是通过 1Panel 部署的,可以按下面步骤添加环境变量,其他的大概也类似:
打开 1Panel 面板,进入 容器。
找到你的 twikoo 容器,点击编辑。
滑到页面最下方,找到 环境变量 部分。
添加一条新的环境变量:
1
TWIKOO_IP_HEADERS=["headers.x-forwarded-for"]
键(Key):
TWIKOO_IP_HEADERS
值(Value):
["headers.x-forwarded-for"]
- 保存并重启容器,配置就生效了!
总结
- 配了 CDN 后,不用担心评论 IP 问题,只要设置好 IP 透传头就行了。
- 不同的 CDN 提供的请求头可能不同,记得对照文档确认一下。
- 小坑一枚,迟来的水文一篇,希望能帮到有缘人!
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果