Discourseには、サイト管理者によって設定可能な3つの異なるグローバルレート制限が組み込まれています。
グローバルなIPごとのレート制限
これらの制限は、Discourseアプリケーションにアクセスするすべての一意のIPアドレスに適用されます。(ファイルシステムやCDNから直接配信されるファイルは除外されます)
デフォルトでは、このレート制限は有効になっています。無効にしたり、レポートモードに設定したりすることもできます。
DISCOURSE_MAX_REQS_PER_IP_MODE : デフォルトは block。このレート制限は初期状態で適用されます。(その他のオプションは warn、warn+block、none)
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE: IPごとの1分あたりのリクエスト数(デフォルトは200)
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: IPごとの10秒あたりのリクエスト数(デフォルトは50)
DISCOURSE_MAX_ASSET_REQS_PER_IP_PER_10_SECONDS: IPごとの10秒あたりのアセット(アバター/CSS)リクエスト数(デフォルトは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によってホスティングされており、エンタープライズプランを利用している場合、これらの制限のいずれかを調整する必要がある場合は team@discourse.org までご連絡ください。
グローバルレート制限は、Free、Starter、Pro、またはBusinessプランでは調整できません。