【问题标题】:should i use a proxy middleware on production?我应该在生产中使用代理中间件吗?
【发布时间】:2020-10-21 11:56:50
【问题描述】:

我将前端与后端分开,我正在配置我的前端部分。 我现在正在使用生产中的代理中间件向后端发送 API 请求,我的问题是,它是否会损害我的前端应用程序?有什么我不应该为此使用中间件代理的原因吗?

对我来说,中间件代理是与后端通信的顺畅解决方案,而且一切都可以开箱即用。

另一种选择是设置一堆 CORS 异常,但我对此并不满意。

【问题讨论】:

  • 您限制自己使用 Node 服务器来为 Vue 提供服务,而它可以作为静态文件提供,例如直接由 Nginx 提供。
  • @EstusFlask 据我所知 express.js 我与 nginx 或 apache 没有什么不同。它在 node.js 驱动的 http 服务器中为我的静态 dist 文件夹提供服务。我所做的只是将我的 api 请求代理到后端。
  • Nginx 更高效地处理静态文件,这是它的显着特点。使用应用服务器来提供静态数据是不必要的,但如果你想知道它是如何造成伤害的,那就是这样。这是可以避免的开销。无论如何,即使使用应用服务器,您也可以使用 Nginx 缓存以减少它。可以单独使用 Nginx 重写 CORS 标头,但我无法对此发表评论。

标签: express vue.js vue-cli http-proxy-middleware


【解决方案1】:

是的,但前提是您要处理缩放案例。

请记住,JavaScript 是单线程的。虽然 NodeJS 非常高效,但在某些时候,用户的请求很可能会开始超时,因为单个线程无法为所有请求提供服务。发生这种情况时,您可能最终需要重新设计您的应用程序。

看看pm2 和cluster mode(如果您还没有的话)。只要您的代理中间件配置为与此协同工作,您应该没问题。

【讨论】:

  • 你知道有什么方法可以测试这样的场景吗?然后我想强制这种情况并在我收到请求队列时检查我的应用程序发生了什么。
  • @Deniz 试试像 Artillery 或 Apache AB 这样的负载测试工具。也适用于有 Nginx 和没有 Nginx 的场景。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-07
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多