如何对所有传入 API 请求使用代理通行证

问题描述 投票:0回答:1

我正在设置一个服务器来使用 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 来处理从前端到后端的所有请求的最佳方法是什么?谢谢!

nginx server nginx-reverse-proxy
1个回答
1
投票

当您在代理 URL 末尾不使用斜杠

/
时,它会将
/api
添加到后面的
proxy_pass
,因此您最终会得到
http://localhost:5000/api/api

尝试在根 URL 末尾使用斜杠:

    location /api {
        proxy_pass http://localhost:5000/;
    }
© www.soinside.com 2019 - 2024. All rights reserved.