![](/img/trans.png)
[英]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.