MaxMind 401 错误 -- 有许可证密钥,无法下载

根据为反向IP查找配置MaxMind的说明,我认为我的设置是正确的,但在下载MaxMind数据库时遇到了401错误。

我使用的是标准安装、自托管且版本最新的Discourse。
我在MaxMind创建了一个账户,并添加了一个新的许可证密钥。

我编辑了app.yml中的ENV部分如下:

  ## MaxMind地理定位IP地址密钥,用于IP地址查找
  ## 详情请参见 https://meta.discourse.org/t/-/137387/23
  DISCOURSE_MAXMIND_ACCOUNT_ID: [我的账户ID]
  DISCOURSE_MAXMIND_LICENSE_KEY: [我的许可证密钥]

然后运行了 ./launcher rebuild app

在重建过程中,记录了以下“401未授权”错误:

MaxMind数据库GeoLite2-City下载失败。: OpenURI::HTTPError : 401错误
MaxMind数据库GeoLite2-ASN下载失败。: OpenURI::HTTPError : 401错误

(当然,没有数据库文件被下载到我的 /var/www/discourse/vendor/data 目录中)

根据这个建议,我使用了MaxMind开发者门户中找到的命令——使用完全相同的凭据——直接下载数据库:

curl -O -J -L -u [我的账户ID]:[我的许可证密钥] \
'https://download.maxmind.com/geoip/databases/GeoLite2-City/download?suffix=tar.gz'

该命令运行正常。

那么,我可能遗漏了什么,导致从Discourse连接时出现401错误?

1 个赞

看来这个话题没人响应!您自己解决了吗?

感谢您的跟进!没有,我还没有解决。在后续的更新+重建后,我得到了相同的结果。不确定该研究什么…… :person_shrugging:

嘿,抱歉这个话题被搁置了。我自己在这方面经验不多。您在审核队列中遇到 IP 查找问题了吗?也许这只是一个您不必担心的警告?:thinking:

我的审核队列不多,但如果没有 MaxMind 数据库,如果我需要研究某个问题,我就无法为用户进行位置查找,而且……

好奇其他人是否遇到过连接 MaxMind 以下载数据库的问题,或者只是我自己的问题。这似乎是直到你需要它时才会被注意到的事情。

姑且不论,我的似乎还能正常工作。:person_shrugging:

不幸的是,我不知道有什么区别。:thinking:

1 个赞

它在我刚刚重建的网站上似乎可以正常工作。

我唯一的猜测是你的设置放错了位置(根据你提供的信息,这似乎不太可能)。

这是否像下面这样显示了你的 Maxmind 凭证?

root@figgy:/var/discourse# ./launcher enter app
root@figgy-spm:/# set|grep MAXM
DISCOURSE_MAXMIND_ACCOUNT_ID=12345
DISCOURSE_MAXMIND_LICENSE_KEY=mycoolkey
root@figgy-spm:/# grep maxm /var/www/discourse/config/discourse.conf
maxmind_license_key = 'mcoolkey'
maxmind_account_id = '12345'

所以你应该

./launcher enter app
set|grep MAXM
grep maxm /var/www/discourse/config/discourse.conf

你也可以检查 Rails 是否拥有它们(仍在容器内):

rails c

然后

GlobalSetting.maxmind_account_id
GlobalSetting.maxmind_license_key

希望你的信息没有放在 app.ymlenv: 部分(尽管你粘贴的评论表明它们在正确的位置),那样很容易修复。

2 个赞