将不同的基本路径路由到相同的代理传递 Nginx

Route different base path to same proxy pass Nginx

我想将不同的路径传递给同一个 proxy_pass 但我一直收到 502 Bad gateway。

这些路径使用相同的端口号但不同的基本路径。我如何根据目前的 returns 错误使它工作。

这是我当前位置的样子

worker_processes 4;
# worker_process auto
events { worker_connections 1024; }

http {

    server {

        listen 80;
        charset utf-8;

        location ~ ^/api/v1/(wallet|card)/(.*)$ {
            proxy_pass http://wallet-service:3007/api/v1//;
            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;
        }
    }
}

如果您根本不需要更改 URI,请不要使用上游名称以外的任何内容:

location ~ ^/api/v1/(wallet|card)/ {
    proxy_pass http://wallet-service:3007;
    ...
}

如果 URI 在传递给上游之前需要重写,请查看 答案以了解如何做。