Nginx反向代理的路径问题

Node.js的一个二维码生成的服务接口运行在本机http://localhost:3000/qrcode?text=abc
一开始Nginx的反向代理配置如下:

    location /myapi {
        proxy_pass http://localhost:3000/;
        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;
    }

那么访问http://www.domain.com/myapi/qrcode?text=abc的时候
Node.js拿到的访问路径是//qrcode?text=abc


如果proxy_pass http://localhost:3000/;改成proxy_pass http://localhost:3000;
那么Node.js拿到的访问路径又变成了:/myapi/qrcode?text=abc
反正,怎么都不对。
最后突然发现应该是这样子:

    location /myapi**/** {
        proxy_pass http://localhost:3000/;
        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反向代理的路径问题)