在 cdn 上托管 rest api 是个坏主意吗?
Is it a bad idea to host a rest api on a cdn?
我是服务器架构的新手,已经阅读了很多东西,但对于下面的设置是否是好的做法还没有一个可靠的意见,希望有经验的人可以给我确认,如果我我正在正确设置我的架构:
- 使用 Angular Universal 预渲染 html 到 CDN(例如 Cloudflare)
- 用于图像资产的 Cloudinary
- One/Few 具有 ngix 的强大机器处理总线负载并发送到下面列出的其他服务器(全部托管在数字海洋中):
- 休息API(快速服务器)
- 数据库MongoDB
我真的很担心我的休息速度 api 因为与 cloudflare 这样的 cdn 相比,数字海洋中提供的区域似乎要小得多。 这对我的速度有多大影响,是一项服务吗?
我知道这听起来很荒谬,但区域问题让我想知道在 cdn 上托管休息 api express 服务器是否比数字海洋这样的地方更好。 (我的直觉告诉我,我不应该在 cdn 上这样做,但我不知所措,希望有人能提供明确的理由,为什么我可以或不应该在那里托管 express rest api 服务器。)
据我所知,我会做一些不同的事情。
CDN 用于提供内容,因此得名 CDN(内容分发网络)。 CDN 本身不提供内容,但它将用户路由到为其提供服务的服务器。例如,如果您在美国、法国和亚洲有一台服务器,而您来自英国,并请求在这些服务器上托管图像的网站。 CDN 会为您引导 closest/best 服务器。在这种情况下,这将是法国的服务器。
因此,为了回答您的问题,在 CDN 上托管 RESTful API 是个不错的主意,但您需要在全球范围内使用多台服务器(如果您打算在全球范围内使用)并使用 Cloudflare CDN 引导您的流量。
这就是我要做的:
如果您不期望流量负载(如数百万),则每个位置只有 1-2 个服务器,因此在北美、南美、法国 (EU)、亚洲和澳大利亚可能有 1-2 个。这将为您提供体面的报道。然后当你设置你的 CDN 时,它应该处理谁去哪里。使用 node 和 nginx 会对你有很大帮助,这将使你获得更便宜的服务器,而不是强大的服务器,因为它们重量很轻。
现在,对于您的数据库,您可以做两件事中的一件,在某处有一个专用解决方案,这对所有地区(如法国(欧盟))的延迟都一样小,因此它更集中,或者您可以有多个并让它们同步。拥有多个同步的数据库将需要更多的工作,并且需要大量的研究。拥有一台服务器更容易管理。
数据库将是您最大的问题,决定是处理一个并处理延迟还是多个并必须管理它们并使它们保持同步。请记住,您可以使用云托管平台来托管您的数据库,这将帮助您解决这个问题,因为许多平台将提供全球覆盖并提供同步数据库。但是,使用云平台时,您将 运行 陷入成本问题。
希望这能回答您的问题并为您提供所需的知识!
我是服务器架构的新手,已经阅读了很多东西,但对于下面的设置是否是好的做法还没有一个可靠的意见,希望有经验的人可以给我确认,如果我我正在正确设置我的架构:
- 使用 Angular Universal 预渲染 html 到 CDN(例如 Cloudflare)
- 用于图像资产的 Cloudinary
- One/Few 具有 ngix 的强大机器处理总线负载并发送到下面列出的其他服务器(全部托管在数字海洋中):
- 休息API(快速服务器)
- 数据库MongoDB
我真的很担心我的休息速度 api 因为与 cloudflare 这样的 cdn 相比,数字海洋中提供的区域似乎要小得多。 这对我的速度有多大影响,是一项服务吗?
我知道这听起来很荒谬,但区域问题让我想知道在 cdn 上托管休息 api express 服务器是否比数字海洋这样的地方更好。 (我的直觉告诉我,我不应该在 cdn 上这样做,但我不知所措,希望有人能提供明确的理由,为什么我可以或不应该在那里托管 express rest api 服务器。)
据我所知,我会做一些不同的事情。
CDN 用于提供内容,因此得名 CDN(内容分发网络)。 CDN 本身不提供内容,但它将用户路由到为其提供服务的服务器。例如,如果您在美国、法国和亚洲有一台服务器,而您来自英国,并请求在这些服务器上托管图像的网站。 CDN 会为您引导 closest/best 服务器。在这种情况下,这将是法国的服务器。
因此,为了回答您的问题,在 CDN 上托管 RESTful API 是个不错的主意,但您需要在全球范围内使用多台服务器(如果您打算在全球范围内使用)并使用 Cloudflare CDN 引导您的流量。
这就是我要做的: 如果您不期望流量负载(如数百万),则每个位置只有 1-2 个服务器,因此在北美、南美、法国 (EU)、亚洲和澳大利亚可能有 1-2 个。这将为您提供体面的报道。然后当你设置你的 CDN 时,它应该处理谁去哪里。使用 node 和 nginx 会对你有很大帮助,这将使你获得更便宜的服务器,而不是强大的服务器,因为它们重量很轻。
现在,对于您的数据库,您可以做两件事中的一件,在某处有一个专用解决方案,这对所有地区(如法国(欧盟))的延迟都一样小,因此它更集中,或者您可以有多个并让它们同步。拥有多个同步的数据库将需要更多的工作,并且需要大量的研究。拥有一台服务器更容易管理。
数据库将是您最大的问题,决定是处理一个并处理延迟还是多个并必须管理它们并使它们保持同步。请记住,您可以使用云托管平台来托管您的数据库,这将帮助您解决这个问题,因为许多平台将提供全球覆盖并提供同步数据库。但是,使用云平台时,您将 运行 陷入成本问题。
希望这能回答您的问题并为您提供所需的知识!