VPS を利用している場合、または Discourse の前面に Nginx(Apache も動作しますが、Nginx の方が簡単です ;))を配置している場合、ボットの排除は非常に容易になります。Discourse の UI は…使いやすさという点ではあまり優れていません。なぜなら、外部にはボットが溢れているからです。robots.txt はほぼ無意味です。Google でさえ、ほとんど従っていないからです。
問題は、あなたの Discourse にアクセスしようとする「ノッカー」だけではありません。彼らが狙っているのはそれ以外のものです。
- 数百人のスクリプトキディが WordPress の有無を確認し、穴を開けようとしています。多くは古い脆弱性ですが、それでも存在します。
- SEO スクレイパーやその他のスパイダーがコンテンツを分析しようとしています。その多くは、それを金儲けに利用したいからです。
- もちろん、検索エンジンも同様です。
これら自体は侵入のような実害をもたらすものではありませんが、これらにリクエストに応答し続けることで、純粋なコストが発生します。
問題は、あなたのサーバーがこれらすべてに応答しなければならないことです。すぐに、負荷の大部分が実ユーザーではなくボットから発生するようになります。実ユーザー 1 人に対してボットが 50〜500 体存在するのは、全くもって一般的な状況です。
そして、そのコストはすべてあなたが負担することになります。
私のサイト(Discourse も含む)は純粋にフィンランド語のみで構成されているため、グローバルなオーディエンスは持っていません。そのため、私は強力なツールを一つ持っていますが、これは VPS のみで利用可能です:地理的ブロックです。
ロシア、中国、インド、パキスタン、イラン、イラク、ベトナムの友人たちには申し訳ありませんが、これらの国からのアクセスを遮断したところ、ボットによる負荷は約 90% 減少しました。
ボットとの戦いは終わりなき闘争です。また、フォーラムが非公開でない場合、Discourse が提供するツールは非常に限られています。しかし、何もないよりはマシです。
誤解しないでください。私は、アプリがサーバーの役割を果たすべきだと言っているのではありません。単に、Discourse だけを頼りにすることはできないという意味です。