如果你使用的是 VPS,或者在 Discourse 前面部署了 Nginx(Apache 也可以,但 Nginx 更简单),屏蔽机器人会容易得多。Discourse 的用户界面……不太好上手,因为外面有大量的机器人。robots.txt 几乎没什么用,因为很少会有人遵守它,甚至连 Google 都不遵守。
问题不在于那些试图访问你 Discourse 的敲门者。他们真正寻找的是其他东西:
- 成百上千的脚本小子在测试你是否运行了 WordPress,并试图利用漏洞(大多是旧漏洞,但依然存在)
- SEO 爬虫和其他蜘蛛程序试图分析你的内容,主要是因为他们想从中获利
- 当然还有搜索引擎
这些行为本身不会造成真正的破坏(比如入侵),但响应它们的请求纯粹是在浪费金钱。
问题在于你的服务器必须响应所有这些请求。很快,大部分负载将来自机器人,而非真实用户。当你拥有 50 到 500 个机器人对应一个真实用户时,这完全是正常情况。
而所有这些成本最终都由你承担。
我没有全球受众,因为我的网站(包括 Discourse)完全是芬兰语的。因此,我拥有一个强大的工具,但它只能在 VPS 上使用:地理封锁。
我很抱歉来自俄罗斯、中国、印度、巴基斯坦、伊朗、伊拉克和越南的朋友们,但当我屏蔽这些国家后,我的机器人负载下降了约 90%。
对抗机器人是一场永无止境的斗争。而当论坛不是私密时,Discourse 提供的工具非常有限。不过,当然,有总比没有好。
请不要误解我的意思。我并不是说应用程序应该去做本应由服务器完成的工作。我只是想表达,你不能完全依赖 Discourse。