[英]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.