我首先要说我不是系统管理员,也不是对服务器有任何了解,我只是一名开发人员,负责为我正在开发的 SaaS 应用程序设置基础架构,所以请原谅我不完全了解一切。我一直在对此进行大量研究,但仍需要一些指导。
我正在考虑将 DigitalOcean Droplets 用于 Laravel 应用程序。将有 3 个 Droplet,其中 2 个用作网站/服务器,而第 3 个用作负载均衡器,所有这些都将使用 Laravel Forge 进行设置。将有一个数字海洋管理数据库,两台服务器都将连接到该数据库,并使用数字海洋空间来通过其 CDN 交付资产。
Cloudflare 将用于 DDoS 保护,但我只是想知道如何设置它,我认为它最好放在负载均衡器上,因为这是查看/连接到站点时链中的第一行?因此,有一个请求进来,Cloudflare 处理它,将请求传递给负载均衡器,然后分发到任一服务器,然后服务器连接到托管数据库,从而一次性保护服务器和数据库。
这被认为是一个好的设置还是有更好的方法来配置它?我还认为 Spaces CDN 需要额外的 DDoS 保护,因为它是一个单独的区域,但我不确定如何最好地处理这个问题,或者是否有办法将 Cloudflare 用于 Droplet/Database 和 CDN。
我还阅读了有关隐藏可用于绕过 Cloudflare 的服务器公共 IP 的信息,我可以采取哪些步骤来防止这种情况,从而为我提供针对攻击的最佳保护?
将 Cloudflare 放在负载均衡器前面是可行的方法,从那时起,您的负载均衡器就只能看到“真实”流量。Cloudflare 的 DDOS 保护通过将您的 Web 服务器“隐藏”在其 Anycast 网络后面来工作,这实质上意味着 Cloudflare 作为您网站 DNS 查询答案的特定 IP 可在全球 100 多个地点使用,并且可能成为攻击者那么就不能压倒您的 Web 服务器,因为它们不知道如何向它发送流量,除非通过 Cloudflare。
我还建议考虑使用 Cloudflare 或 DigitalOcean 来进行负载平衡部分,它们都为此目的提供了专用产品,它更易于设置且更强大。他们还可以执行 SSL 卸载、缓存和其他操作,从而大大减少 Web 服务器的负载。
至于将 Cloudflare 放在 DigitalOcean Spaces CDN 前面,这可能有点矫枉过正,因为 DO 的 CDN 应该已经非常有能力处理 DDOS 攻击了。