两个 Rails 项目在两个不同的 droplet 上,具有单个域

Two Rails projects on two different droplets with single domain

是否可以在两个不同的 droplet 上为两个 Rails 项目使用一个域?

我有两个 droplet (DigitaOcean),有两个不同的 Rails 5 个项目(ubuntu 18、nginx、puma)。一个用于网站,另一个用于 API(移动应用程序的后端)。

我的意思是我想购买 example.com 域名。之后,我想对网站使用 example.com,对 API 使用 api.example.com

我认为我应该使用 nginx 配置做一些工作?我应该使用私有 IP 吗?哪个 Droplet 应该根据 url 处理流量?

是的,您可以轻松添加子域,并将此子域指向您的 Droplet。 我对 Digital Ocean 不太熟悉,但应该很容易。 您只需要创建一个子域(过程取决于域提供商),并将其指向您的 Droplet。

您不必担心 nginx 配置、域处理或服务器的其他问题。在这种情况下,您需要做的就是创建 2 个液滴: IP 为 1 的网站 Droplet API IP2

液滴

然后在您的 DNS 管理器中(DigitalOcean 或您的名称服务器指向的其他地方)添加 A 记录:

example.com 到 IP1
(可选)www.example.com CNAME 到 example.com
api.example.com 到 IP2

不需要智能或复杂的配置:)