簡體   English   中英

部署到 AWS 時,Node.js api 不起作用

[英]Node.js api not working when deploying to AWS

我有一個 Node.js 應用程序,前端使用的是 React。 當我在本地開發時,我將項目放在 http://localhost/app 子目錄下,api 在/api ,我使用的端口是 5000。一切正常。 這是我設置的方式:

對於 Node.js,我使用它來設置前端目錄和路由器:

const indexRouter = require('./routers')
app.use('/api', indexRouter)  //to set API path
app.use('/app', express.static('public')) 

服務器正在偵聽 5000。

對於 React,我將 package.json 更新為:

"homepage": "/app",
"proxy": "http://localhost:5000/"

對於 Axios 請求,我在請求路徑的開頭添加了基本變量並將其設置為“/api”

這在我的本地主機上都很好。 但是,當我使用 Nginx 將其部署到 AWS 時,我無法使 API 請求成功。

使用 Nginx,我更新了原始位置塊

location / {
   try_files $uri $uri/ = 404;
}

location /app {
    proxy_pass http://localhost:5000;
    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;
}

當我轉到/root/app ,我可以看到 React 的主頁(我將 React 構建文件復制到 Node js 公共文件夾中)。 但是,它無法獲得請求成功。 在我的localhost上可以看到,請求路徑是http://localhost:3050/api/login,但是live sever請求路徑是http://domain_name/login,不知道為什么服務器不能去/api請求的/api

我希望有人可以幫助我。

由於您使用 yarn build 構建了 React 應用程序,因此您將無法使用您在開發中使用的代理。 該方法僅用於開發測試,不適用於生產測試。 您可以在此處閱讀更多相關信息。

暫無
暫無

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

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