你如何构建像Firebase这样的应用程序?

Jat*_*tin 8 architecture load-balancing web-applications firebase

假设您正在建立一个网站(类似Facebook).您编写代码,将其部署在服务器上,并在负载增加时增加服务器.这些服务器位于负载均衡器后面,请求可以随机地发送到任何服务器.

但是,假设您正在制作像Firebase这样的东西.现在在firebase上,您可以创建一个application,然后获得一个子域<app_name>.firebase.com.虽然您的服务器代码对于所有应用程序仍然相同,但请求app1.firebase.com将转到专用服务器集,不同于app2.firebase.com.因此,从一个应用程序加载,不应该影响另一个应用程序.


为了限制问题的范围,更具体地说,Firebase是如何设计的,如何将请求路由到每个主机的特定主机集application

Gri*_*iff 3

一般来说,您所说的“应用程序”实际上是一个子域或虚拟主机。这是通过一些技术堆栈来完成的。

首先,您需要子域的 DNS 记录。因此,app.somedomain.com 必须具有可在互联网上解析的 IP 地址,并创建指向该子域的别名记录(或 A 记录)。完成后,您可以配置 Web 服务器(通常是 apache 或 nginx)来通过所谓的虚拟主机处理子域。您应该查阅每种技术的具体文档,但对于 apache 服务器,其最基本的配置如下所示:

<VirtualHost *:80>
   ServerName app.somedomain.com
   ServerAdmin webmaster@app.somedomain.com
   DocumentRoot /var/www/app.somedomain.com/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

  • 我不使用 Firebase,但这就是互联网其他部分的工作方式, (2认同)