こんにちは、皆さん。
Azure にシンプルな Linux VM を立ち上げ、Discourse をインストールしました。このマシンを使って移行スクリプトを開発しています。スクリプトを実行すると HTTP 429 エラーが発生します。app.yml で制限値を設定する方法についての投稿を見つけました。
私の設定は以下の通りです:
これらの変更後、「./launcher rebuild app」も実行しました。
しかし、それでも約 200 回の API リクエストで 429 エラーが発生します。何が不足しているのでしょうか?
sam
(Sam Saffron)
2021 年 3 月 9 日午前 12:47
2
おそらく NGINX 由来のものですが、NGINX のレート制限テンプレートが混入していませんか?
「いいね!」 1
ciprian
(Ciprian Boboc)
2021 年 3 月 26 日午前 3:01
4
/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(「リクエストが多すぎます」)エラーが発生したままです。
他に設定を変更すべき項目はありますか?このエラーは NGINX ではなく、Discourse 自体から発生しているようです。以下のようなエラーメッセージが表示されました。
{\"errors\":[\"You've reached the maximum number of new topics. Please wait 15 hours before trying again.\"],\"error_type\":\"rate_limit\",\"extras\":{\"wait_seconds\":54224}}
他のユーザーで投稿を試みると、問題なく動作します。
各ユーザーの新規トピック作成数制限を解除する設定はどこにあるのでしょうか。「Settings \ Users」や「Settings \ Posting」では見つけられませんでした。
ciprian
(Ciprian Boboc)
2021 年 3 月 26 日午前 3:27
5
実際には、[設定] > [レート制限] で探していたものが見つかりました。
「いいね!」 1
pfaffman
(Jay Pfaffman)
2021 年 3 月 26 日午前 3:33
6
他のフォーラムからデータをインポートしようとしている場合は、既存のインポートスクリプトを確認する方がはるかに有利です。
「いいね!」 1