为反向IP查询配置MAXMIND

什么是 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 的外部代理。这比标准安装需要更多的系统管理专业知识。

31 个赞