# 优化我的 DO Droplet 配置

**URL:** https://meta.discourse.org/t/improve-my-do-droplet-setup/141665
**Category:** Self-hosting
**Created:** [2020年二月15日 05:13 UTC](https://meta.discourse.org/t/improve-my-do-droplet-setup/141665 "2020-02-15T05:13:25Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Fausto\_Dassenno](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fausto_dassenno/32/166480_2.png) [@Fausto\_Dassenno](https://meta.discourse.org/u/Fausto_Dassenno)
#### Post date: [2020年二月15日 05:13 UTC](https://meta.discourse.org/t/improve-my-do-droplet-setup/141665/1 "2020-02-15T05:13:25Z")

</div>

大家好，

我目前在 DigitalOcean 的单台 Droplet 上运行 Discourse，希望搭建一个更具冗余性的架构。我在网上找到的所有资源都指向使用负载均衡器，但为此我需要创建一台独立的外部数据库 Droplet，并将生产环境的数据库迁移过去，等等。

有人有类似的经验吗？

谢谢！

F.

---

<div class="post-metadata">

### Author: ![wanghaisheng](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wanghaisheng/32/163707_2.png) [@wanghaisheng](https://meta.discourse.org/u/wanghaisheng)
#### Post date: [2020年二月15日 05:19 UTC](https://meta.discourse.org/t/improve-my-do-droplet-setup/141665/2 "2020-02-15T05:19:20Z")

</div>

你说的“更冗余的设置”是什么意思

---

<div class="post-metadata">

### Author: ![Fausto\_Dassenno](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fausto_dassenno/32/166480_2.png) [@Fausto\_Dassenno](https://meta.discourse.org/u/Fausto_Dassenno)
#### Post date: [2020年二月15日 07:11 UTC](https://meta.discourse.org/t/improve-my-do-droplet-setup/141665/4 "2020-02-15T07:11:27Z")

</div>

现在我的 Droplet 成了单点故障 🙂

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [2020年二月15日 07:14 UTC](https://meta.discourse.org/t/improve-my-do-droplet-setup/141665/5 "2020-02-15T07:14:35Z")

</div>

我估计许多提供商都具备一定程度的隐性故障转移能力。你是否已向 DigitalOcean 确认，其 Droplet 提供何种级别的故障转移？

顺便提一下，我在 Scaleway 上运营两个论坛已有数年，除了故意重建外，停机时间大约只有 30 分钟。DigitalOcean 的稳健性想必也类似。你为何需要在此基础上进一步提升服务等级协议（SLA）？这种稳健性水平已超过我所知的多数银行系统！

---

<div class="post-metadata">

### Author: ![marianord](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marianord/32/90502_2.png) [@marianord](https://meta.discourse.org/u/marianord)
#### Post date: [2020年二月15日 14:19 UTC](https://meta.discourse.org/t/improve-my-do-droplet-setup/141665/6 "2020-02-15T14:19:45Z")

</div>

如果你（出于某种原因）希望在 DigitalOcean 上实现完全的高可用（HA）架构，我会建议采用以下方案：

- 负载均衡器
- 运行应用容器的 Droplets
- DigitalOcean 托管的 PostgreSQL 数据库

以下是关于外部数据库配置的一些信息：

> [@Configure Discourse to use a separate PostgreSQL server](https://meta.discourse.org/t/running-discourse-with-a-separate-postgresql-server/46375):
>
> Let’s say you’re using AWS RDS, or an existing PostgreSQL server managed elsewhere. It’s fairly straightforward to get Discourse to use such a setup, without needing to grant superuser privileges to anything that Discourse itself runs. Here’s how. Prerequisites Discourse requires PostgreSQL’s major version to [match what we ship with in our docker images](https://github.com/discourse/discourse_docker/blob/main/image/base/Dockerfile#L37); if you try to run on a newer or older version, it might work, but we don’t guarantee it, and if something breaks in the future, you get to …

不过，这将大幅增加基础设施的月度账单，我个人认为这完全没有必要。此外，这也无法防范大规模数据中心故障，因为 DigitalOcean 在各区域中并未提供多可用区（Multi-AZ）支持，也不支持跨区域负载均衡（至少据我了解是这样的）。

在我使用 DigitalOcean 的五年左右时间里，从未遇到过任何会如此严重影响数据中心的故障。
