大家好,
我在 Azure 中搭建了一台简单的 Linux 虚拟机并安装了 Discourse。我使用这台机器来开发一些迁移脚本。在运行迁移脚本时,我遇到了 HTTP 429 错误。我找到了关于如何在 app.yml 中设置限制的帖子。
我的配置如下:
在这些更改之后,我也执行了 ./launcher rebuild app。
但即便如此,在大约 200 次 API 请求后,我仍然收到 429 错误。我可能遗漏了什么?
大家好,
我在 Azure 中搭建了一台简单的 Linux 虚拟机并安装了 Discourse。我使用这台机器来开发一些迁移脚本。在运行迁移脚本时,我遇到了 HTTP 429 错误。我找到了关于如何在 app.yml 中设置限制的帖子。
我的配置如下:
在这些更改之后,我也执行了 ./launcher rebuild app。
但即便如此,在大约 200 次 API 请求后,我仍然收到 429 错误。我可能遗漏了什么?
可能来自 NGINX,您是否混用了 NGINX 的限流模板?
我们尝试在 /etc/nginx/conf.d/discourse.conf 中进行了更改——我们调整了这些值,希望能不再收到 429(“请求过多”)错误:
limit_req_zone $binary_remote_addr zone=flood:10m rate=1200r/s;
limit_req_zone $binary_remote_addr zone=bot:10m rate=2000r/m;
limit_req_status 429;
limit_conn_zone $binary_remote_addr zone=connperip:1000m;
[...]
limit_conn connperip 2000;
limit_req zone=flood burst=1200 nodelay;
limit_req zone=bot burst=1000 nodelay;
随后执行了以下操作:
sv stop nginx
sv start nginx
进入 /var/www/discourse 目录
但即使进行了这些更改,我们仍然收到 429(“请求过多”)错误。
我们是否还需要更改其他设置?该错误似乎来自 Discourse 本身,而非 NGINX。我收到了以下错误:
{"errors":["您已达到新建主题的最大数量。请等待 15 小时后再试。"],"error_type":"rate_limit","extras":{"wait_seconds":54224}}
如果我尝试用其他用户发布消息,则似乎可以正常工作。
我想知道在哪里可以设置取消每个用户新建主题数量的限制。我在“设置 \ 用户”或“设置 \ 发帖”中未找到相关选项。
实际上,我在“设置 > 速率限制”下找到了我需要的内容。
如果您正尝试从另一个论坛导入数据,那么查看现有的导入脚本会是更好的选择。