💡
原文英文,约500词,阅读约需2分钟。
📝
内容提要
我正在开发一个解决方案,通过IP地址在AWS ECS的Docker容器中定位用户。主要挑战包括避免第三方调用、保护客户端逻辑和定期自动同步数据库。我选择使用Maxmind的.mmdb数据库,并通过geoipupdate自动下载。利用Next.js的服务器端功能获取用户IP,并在Docker中使用supercronic定期更新数据库。
🎯
关键要点
- 正在开发一个通过IP地址定位用户的解决方案,项目托管在AWS ECS的Docker容器中。
- 避免第三方调用是一个主要挑战,选择使用Maxmind的.mmdb数据库,并通过geoipupdate自动下载。
- 利用Next.js的服务器端功能,避免在客户端暴露逻辑,通过req.headers['x-forwarded-for']获取用户IP。
- 使用Maxmind的geoipupdate集成实现数据库的定期自动同步,解决了在node:alpine Docker容器中执行cron作业的问题。
- 使用supercronic工具在Docker中运行cron作业,定期检查和更新二进制数据库文件。
- 生成了一个预配置模板以可视化部分过程,并在Github上提供了访问。
➡️