プライベートな Discourse インスタンスの運用を手伝っているのですが、ダッシュボードに匿名ユーザーやウェブクローラーのトラフィックが記録されているのに気づきました。よく見てみると、以前から同様のことが起きていましたが、その量は少なかったようです。
「ログイン必須」オプションを有効にしており、SSO も特定の条件を満たすユーザーのみログインを許可するように設定しています。他に設定すべき項目はありますか?よろしくお願いします!![]()
プライベートな Discourse インスタンスの運用を手伝っているのですが、ダッシュボードに匿名ユーザーやウェブクローラーのトラフィックが記録されているのに気づきました。よく見てみると、以前から同様のことが起きていましたが、その量は少なかったようです。
「ログイン必須」オプションを有効にしており、SSO も特定の条件を満たすユーザーのみログインを許可するように設定しています。他に設定すべき項目はありますか?よろしくお願いします!![]()
追加でやるべきことは特にないはずです…そのクローラーのトラフィックは、おそらく community.yoursite.com/login にアクセスしているクローラーによるものです。community.example.com/admin/reports/web_crawlers を確認すると、特定のクローラーがサイトをどのくらいの頻度でアクセスしているかを確認できます。
クローラーのトラフィックを減らすためにできることがいくつかあります。
robots.txt で /login のクローラーアクセスを禁止してみてください(community.example.com/admin/customize/robots)。これによりクローラーのトラフィックが多少減少するでしょう(ただし、robots.txt を無視するクローラーも存在するため、完全に消えるわけではありません)。
/admin/reports/web_crawlers で最も問題となっているクローラーを確認し、その User-Agent を「ブロックするクローラーの User-Agent」サイトの設定に追加してください。
Kris が書いた内容に加え、各 SSO ログインリクエストの開始時に、あなたのサイトのログインページまたはホームページに対して匿名でのリクエストも送信されます。
また、あなたのサイトの利用規約(TOS)ページやプライバシーポリシーページも、匿名ユーザーがアクセスできる可能性が高いです。
VPS を利用している場合、または Discourse の前面に Nginx(Apache も動作しますが、Nginx の方が簡単です ;))を配置している場合、ボットの排除は非常に容易になります。Discourse の UI は…使いやすさという点ではあまり優れていません。なぜなら、外部にはボットが溢れているからです。robots.txt はほぼ無意味です。Google でさえ、ほとんど従っていないからです。
問題は、あなたの Discourse にアクセスしようとする「ノッカー」だけではありません。彼らが狙っているのはそれ以外のものです。
これら自体は侵入のような実害をもたらすものではありませんが、これらにリクエストに応答し続けることで、純粋なコストが発生します。
問題は、あなたのサーバーがこれらすべてに応答しなければならないことです。すぐに、負荷の大部分が実ユーザーではなくボットから発生するようになります。実ユーザー 1 人に対してボットが 50〜500 体存在するのは、全くもって一般的な状況です。
そして、そのコストはすべてあなたが負担することになります。
私のサイト(Discourse も含む)は純粋にフィンランド語のみで構成されているため、グローバルなオーディエンスは持っていません。そのため、私は強力なツールを一つ持っていますが、これは VPS のみで利用可能です:地理的ブロックです。
ロシア、中国、インド、パキスタン、イラン、イラク、ベトナムの友人たちには申し訳ありませんが、これらの国からのアクセスを遮断したところ、ボットによる負荷は約 90% 減少しました。
ボットとの戦いは終わりなき闘争です。また、フォーラムが非公開でない場合、Discourse が提供するツールは非常に限られています。しかし、何もないよりはマシです。
誤解しないでください。私は、アプリがサーバーの役割を果たすべきだと言っているのではありません。単に、Discourse だけを頼りにすることはできないという意味です。