Miq*_*nal 6 architecture rest node.js reactjs next.js
看看下面的场景,我想知道这在架构方面是否可以被认为是一个好的实践:
getServerSideProps()函数上的数据。这意味着服务器将在每次请求时执行它。我的问题是:NextJS 如何在内部与 API 应用程序进行通信?通过本地主机端口发送请求的正确方法是吗?如果没有,是否有另一种方法不意味着 NextJS 将外部 HTTP 请求发送回同一服务器本身?
关键要求之一是每个应用程序必须保持独立。它们当前运行在同一台服务器上,但来自不同的代码存储库,并且每个都有自己的 SDLC 和发布流程。它们有自己的域 (URL),将来它们可能位于不同的服务器实例上。
我知道在 NextJS 中您可以使用Prisma等库来查询数据库。但这不是一个选择。数据建模由 API 管理,我希望避免重复工作。此外,一旦 NextJS 在客户端呈现,React 将继续通过正常的 HTTP 请求调用 API 应用程序。这是为了保持动态的前端体验。
当前端应用程序独立于后端运行时,这是非常常见的情况。反向代理通常会帮助我们。
我建议您使用以下简单的方法来实现(也是最好的方法之一)
/api,并且您的前端路由不能以/api因此,在您的 Nginx 配置文件中,添加/更新以下位置/路由
## for backend or api and assuming backend is running on 3000 port on same server
location /api {
proxy_pass http://localhost:3000;
## Following lines required if you are using WebSocket,
## I usually add even not using WebSocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
## for frontend and assuming frontend is running on 5000 port on same server
location / {
proxy_pass http://localhost:5000;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4282 次 |
| 最近记录: |