[英]Where do I put front-end code in my backend project and how/when to run it?
[英]Run front end and Backend services in ECS fargate
我有一个小型reactjs
前端应用程序和一个python
后端应用程序。
我想在ECS
fargate 中运行这两个服务。 所以我创建了一个task definition
,并将两个容器都包含在同一个任务定义中。
并且通过reactjs
应用程序正在使用axios
与python
后端交谈(点击),如下所示:
axio.get("http://127.0.0.1:8083/monitors").then(res => {
this.setState({
status: res.data
});
});
此设置在本地环境中运行良好。 但是由于现在我将其移至 Fargate,当我使用域访问前端服务时,出现以下错误:
无法加载资源:net::ERR_CONNECTION_REFUSED 127.0.0.1:8083/monitors:1
那么,我该怎么做,如何访问后端容器?
如果它们都是后端应用程序,您的设置将正常工作。 但是,ReactJS 应用程序实际上运行在用户的 web 浏览器中。 Axios 需要在运行 web 浏览器的本地计算机和在 Fargate 上运行的后端服务之间建立网络连接。 目前,因为您将其指向127.0.0.1
,它正在尝试查找在您的本地计算机上运行的不存在端口8083
的服务。
您需要配置您的 Axios 应用程序以通过其公共 IP 地址或域访问后端服务。 在这种情况下通常使用负载均衡器,然后您将 Axios 指向负载均衡器的域名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.