在同一快速服务器上处理客户端的网页/静态文件请求和 REST API 请求是一种不好的做法吗?



我有一个web应用程序(单页React应用程序),我有一个快速服务器托管在云运行,处理我所有的用户的请求。

但是我有一些/api路由现在正在同一台服务器上处理。它们通常调用外部API或更新数据库中的某些内容。

例如:

/api/send-contact      // SENDS CONTACT FORM EMAIL
/api/search            // HANDLES TEXT SEARCH AND RESPONDS
/api/update-viewcount  // UPDATES THE DB VIEW COUNT FOR A PAGE

在我用来响应用户页面请求的同一express服务器上处理这些/api调用是一种不好的做法吗?我应该为那些"api"构建一个单独的服务器吗?电话吗?

服务器架构包含许多权衡。为了获得更高的规模,你通常会增加复杂性(服务器集群、卸载静态资源、动态启动更多服务器等)。但是,您不希望增加不必要的复杂性,因为这可能花费更多,并且管理、监视和维护更复杂。

因此,将静态资源卸载到其他服务器(CDN或NGINX实例或类似的东西)是增加服务器规模的一条途径。但是,只有当您有特定的服务器可伸缩性动机时才会这样做。如果您的服务器现在运行在30%的容量,那么还没有理由去那里。

在我用来响应用户页面请求的同一express服务器上处理那些/api调用是一种不好的做法吗?

。如果你的服务器能够很好地处理当前的负载,就不会。

我应该为那些"api"构建一个单独的服务器吗?电话吗?

。当你需要更大的服务器规模时,你已经完成了简单的服务器优化来提高你的规模,然后你会考虑从你的API服务器上删除一些东西,比如提供静态资源。