【问题标题】:How To Use A Proxy Pass For All Incoming API Request如何为所有传入的 API 请求使用代理通行证
【发布时间】:2021-04-09 08:12:03
【问题描述】:

我正在设置一个服务器来使用 nginx 托管我的网站,但我的后端工作有问题。目前我只使用 Restful API 并尝试在 nginx 中使用 proxypasses 来访问我的后端,但我是否必须为每个 api 端点添加一个位置。例如,我的后端服务器是从 localhost:5000 上的 pm2 运行的,如果我将 nginx 设置为如下所示,我的所有端点都需要 http://myip/api/(my-endpoint):

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】:

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

    尝试只使用这样的根 url:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多