什么是 MAXMIND,我为什么要使用它?
Discourse 使用 MAXMIND 来提供反向 IP 查询的地理信息。
如果没有 Maxmind 的数据库,您将看到类似以下内容:
或者,您可能在重建容器时注意到这条消息一闪而过:
MaxMind IP 数据库下载需要账户 ID 和许可证密钥
请设置 DISCOURSE_MAXMIND_ACCOUNT_ID 和 DISCOURSE_MAXMIND_LICENSE_KEY。有关更多详细信息,请参阅 https://meta.discourse.org/t/configure-maxmind-for-reverse-ip-lookups/173941。
我为什么要关心这个?
对于版主来说,查看某人登录的地理位置通常很有用,以便确定此人是否如其所述(以及所在位置),或用于诊断站点问题。(“哦,我们经常在 Special-ISP 上遇到问题。”)
此外,自 2.2.0.beta4 起,Discourse 还利用这些信息在检测到从新位置登录时通知管理员。如果没有 Maxmind 数据库,Discourse 将无法提供此通知。
如果我不设置 MaxMind 账户并生成许可证密钥会怎样?
您将无法进行反向查询。如果上述问题与您无关,那么忽略这一点通常不会带来任何不良后果。
如何设置 MaxMind 账户并获取账户 ID 和许可证密钥?
请参阅 Maxmind 的 Generate a license key 页面以获取最新说明,但您需要:
- 访问 GeoLite2 注册 页面。
- 登录后,在左侧导航栏的
<kbd>管理许可证密钥</kbd>选项卡上生成许可证密钥。生成新密钥后,复制账户 ID 和许可证密钥。如果丢失,您需要重新生成一个新的。
然后,将密钥添加到 app.yml 的 ENV 部分,添加如下行:
DISCOURSE_MAXMIND_ACCOUNT_ID: your-account-id-here
DISCOURSE_MAXMIND_LICENSE_KEY: your-key-here
或者在 discourse-setup 提示时进行设置。
IPv6 用户注意事项
标准安装默认不完全支持 IPv6。如果您的服务器已配置 IPv6 并且需要 IPv6 地址的 Maxmind 信息,您需要确保用户的实际 IP 地址能够传递给 Discourse,通常通过使用将远程 IP 地址传递给 Discourse 的外部代理。这比标准安装需要更多的系统管理专业知识。

