簡體   English   中英

無法從 angular 前端 AWS EC2 訪問節點后端

[英]Unable to reach node backend from angular frontend AWS EC2

我是 AWS 的新手,我剛剛設置了一個 EC2 實例來托管我的 MEAN 堆棧應用程序。 我已經添加了所有代碼,前端和后端都啟動並運行良好。 唯一的問題是來自前端的 api 調用不起作用。 curl http://localhost:3000/products從命令行工作正常,我得到了正確的數據。 但是當從前端調用相同的鏈接時,我得到Failed to load resource: the server responded with a status of 404 (Not Found)

更新:我已將前端中的所有 api 調用更改為/api ,並已將 nginx 配置為...

location /api/ {
   proxy_pass http://localhost:3000/;
}

…用於節點 api 反向代理。 所以現在 api 調用是通過鏈接http://<public ipv4 dns>/api/products但是,我仍然收到 404 not found 響應。

前端 Angular 應用程序在用戶 PC/筆記本電腦上的 web 瀏覽器中運行。 您的 EC2 服務器正在做的就是將原始 JavaScript 文件提供給瀏覽器。 瀏覽器實際上運行 Angular/JavaScript 代碼。

因此,來自 Angular 代碼內部的localhost實際上是查看您的應用程序的人的 PC/筆記本電腦。 它不是 EC2 服務器。 您需要更改您的 Angular 應用程序,以通過 EC2 服務器的公共 IP 地址(或公共 ZED5F212BDECBD4BDAFBD19BDAFBD1 名稱)訪問您的localhost

獲得 Node.js AWS 服務器 URL 后,您可以將其放入 Angular 應用程序中的此文件中:

my_app\src\environments\environment.prod.ts

 export const environment = { production: true, myServer: 'https://yourServerInTheCloudURL.com/' };

然后,您可以在整個 Angular 應用程序中使用“myserver”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM