Discourse には、サイト管理者が設定できる 3 種類のグローバルレート制限が同梱されています。
グローバル IP ごとのレート制限
これらの制限は、Discourse アプリケーションにアクセスするすべてのユニークな IP アドレスに適用されます (ファイルシステムや CDN から直接提供されるファイルは除外されます)。
デフォルトでは、このレート制限は有効になっています。無効にするか、レポートモードに設定することができます。
DISCOURSE_MAX_REQS_PER_IP_MODE: デフォルトは block で、このレート制限が標準で適用されます。(その他のオプションは warn、warn+block、none です)
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE: 1 分あたりの IP ごとのリクエスト数 (デフォルトは 200)
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: 10 秒あたりの IP ごとのリクエスト数 (デフォルトは 50)
DISCOURSE_MAX_ASSET_REQS_PER_IP_PER_10_SECONDS: 10 秒あたりのアセット (アバター/CSS) の IP ごとのリクエスト数 (デフォルトは 200)
DISCOURSE_MAX_REQS_RATE_LIMIT_ON_PRIVATE: プライベート IP が Discourse にアクセスする際にレート制限を適用するかどうか。デフォルトは false です。
DISCOURSE_SKIP_PER_IP_RATE_LIMIT_TRUST_LEVEL: このトラストレベル以上のユーザーに対して、IP 制限ではなくユーザーごとの制限を使用するかどうか (デフォルトは 1)
DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS: IP ごとのレート制限から除外する IP アドレスまたは CIDR ブロックのスペース区切りのリスト。例: 14.15.16.32/27 216.148.1.2
ユーザー API レート制限
モバイルアプリケーションは、ユーザーに代わって Discourse にアクセスするためにデバイスごとにユーザー API キーを取得します (オープンプロトコルを使用)。これらの API キーは非常に厳しく制限されています。
DISCOURSE_MAX_USER_API_REQS_PER_MINUTE: デフォルト 20
DISCOURSE_MAX_USER_API_REQS_PER_DAY: デフォルト 2880
管理者 API レート制限
管理者 API キーは、yoursite.com/admin/api/keys ページから生成できます。これらのキーはユーザーの代理として操作できますが、生成には管理者権限が必要です。すべてのキー間で共有される 1 分あたり 60 リクエストの制限があります。
自己ホスト型ユーザーは、app.yml ファイルでこれを変更できます。ホスト型のお客様は、ホスティングプロバイダーに連絡する必要があります。
DISCOURSE_MAX_ADMIN_API_REQS_PER_MINUTE : 60
Data Explorer プラグイン API レート制限
DISCOURSE_MAX_DATA_EXPLORER_API_REQ_MODE: デフォルトは warn で、このレート制限が標準で適用されます。(その他のオプションは block、warn+block、none です)
DISCOURSE_MAX_DATA_EXPLORER_API_REQS_PER_10_SECONDS: 2
注: Data Explorer UI 経由で行われたリクエストは、レート制限のカウントには含まれません。
レート制限に達してスロットリングされた場合はどうすればよいですか?
API をプログラムで利用していて、429 ステータスコードのスロットリング応答が返された場合は、それに従い速度を落とす必要があります。
エンドユーザーとしては、レート制限を経験することはほとんどないはずですが、もし経験した場合は速度を落としてください。これは、50 個のタブを素早く開くような操作でトリガーされる可能性があります。
ファイアウォールとプロキシに関する警告! 
リバースプロキシを実行している場合で設定が不適切な場合、Discourse はすべてのリクエストが単一の IP アドレスから来ていると誤認する可能性があり、すぐにレート制限に達する可能性が非常に高いです。リバースプロキシが IP を正しく転送するように設定されていることを確認してください。
これらの制限を変更するにはどうすればよいですか?
制限を変更するには、app.yml ファイルの env セクションに変更したい内容を追加します。
Discourse によってホストされており、Enterprise プランをご利用の場合は、これらの制限のいずれかを調整する必要がある場合は team@discourse.org までご連絡ください。
グローバルレート制限は、starter、pro、または business プランでは調整できません。