Web 应用程序的服务器结构

Server structure for Web application

我有一个网络应用程序 w1 (SPA): 网络服务器 WS 位于物理服务器 X 应用服务器 AS il 位于另一台物理服务器 Y.

用户调用网络服务器启动w1应用程序(http://WS/w1) 非浏览器有视图,但没有数据。 通过 ajax http GET 调用检索数据 w1 应用程序调用 AS(http://AS/car/df785er/plate 例如检索车牌)

总而言之,在 MVC 设计中,视图是从 WS 中检索的,模型是从 AS 中检索的。

这个结构正确吗?或者正确的结构是WS和AS客栈是同一台物理机?

您的应用程序的结构是正确的...但是出于安全原因,默认情况下浏览器会阻止对模型 AS 发出的 ajax 请求。

有几种可能的解决方案。我用过的是:

  1. 在 AS 服务器上启用 CORS。 这将允许浏览器调用 AS 如果您只发出 GET 请求,那真的很容易。您只需在响应中添加一个 http header (Access-Control-Allow-Origin:) 有关 CORS 的详细信息: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
  2. 在 WS 上使用反向代理来调用 AS:例如。所有对 WS 上 /api/ 的请求都将被反向代理到 http://AS/

应用哪种解决方案取决于安全考虑、您发出的请求类型(例如,CORS 仅允许 GET、HEAD amd POST)等...