我正在设置一个服务器来使用 nginx 托管我的网站,但我的后端工作遇到问题。目前我只使用 Restful API,并尝试在 nginx 中使用 proxypasses 来访问我的后端,但是我是否必须为每个 api 端点添加一个位置。例如,我的后端服务器是从 localhost:5000 上的 pm2 运行的,我的所有端点都需要 http://myip/api/(my-endpoint),如果我将 nginx 设置为如下所示:
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://localhost:5000/api;
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;
}
还是不行。设置 nginx 来处理从前端到后端的所有请求的最佳方法是什么?谢谢!
当您在代理 URL 末尾不使用斜杠
/
时,它会将 /api
添加到后面的 proxy_pass
,因此您最终会得到 http://localhost:5000/api/api
。
尝试在根 URL 末尾使用斜杠:
location /api {
proxy_pass http://localhost:5000/;
}