Node.js 如何停靠前端应用程序以与已停靠的api应用程序通信

Node.js 如何停靠前端应用程序以与已停靠的api应用程序通信,node.js,docker,reverse-proxy,development-environment,Node.js,Docker,Reverse Proxy,Development Environment,目前,我正在开发一个应用程序,它使用一个完全对接的节点API服务(由Docker Nginx在本地提供)和一个简单的React前端,该前端使用PHP valet在本地提供服务 运行docker compose up,在端口80上成功构建托管在Nginx上的停靠应用程序,代理将请求传递到端口9999上的节点API 我遇到的问题是让react前端与停靠的节点API通信 理想情况下,我愿意选择其中之一;移动docker Node api服务以由PHP代客服务,或移动前端webapp以也由docker

目前,我正在开发一个应用程序,它使用一个完全对接的节点API服务(由Docker Nginx在本地提供)和一个简单的React前端,该前端使用PHP valet在本地提供服务

运行
docker compose up
,在端口80上成功构建托管在Nginx上的停靠应用程序,代理将请求传递到端口9999上的节点API

我遇到的问题是让react前端与停靠的节点API通信

理想情况下,我愿意选择其中之一;移动docker Node api服务以由PHP代客服务,或移动前端webapp以也由docker nginx服务提供

我如何将前端和后端服务完全对接在一起,以便它们可以相互通信(理想情况下都托管在端口80上),或者建议如何将Valet或MAMP与容器化节点API一起使用

我如何将前端和后端服务完全对接在一起,以便它们可以相互通信(理想情况下都托管在端口80上),或者建议如何将Valet或MAMP与容器化节点API一起使用

无论是否使用Docker,您都将面临来自同一来源策略的前端到后端的请求(XMLHttpRequest和一些其他请求)

如果这两个应用程序是容器,那么主机的设计将有所不同,因为它们将是两个不同的容器。如果你将前端应用程序保留在主机上,情况也会如此

因此,在任何情况下,您都应该至少满足前端主机的请求。从前端来看,不需要任何东西,因为CORS是一种浏览器:它向目标主机发送飞行前请求,以获得资源共享协议


关于将前端设置为Docker容器,我认为如果前端设计为与节点后端一起工作,那么您可能还应该将其设置为Docker映像/容器,并使用
Docker compose
来管理它们:这将使它们更易于管理/维护

将前端构建为静态HTML,并从静态目录的后端为其提供服务

React前端加载到用户的机器上,并在浏览器中执行。它通过HTTP与服务器通信

您现在如何为React应用程序提供服务?React应用程序只是通过HTTP提供的纯文本文件