NGINX+;Docker组合路由问题

NGINX+;Docker组合路由问题,nginx,docker-compose,uri,microservices,Nginx,Docker Compose,Uri,Microservices,我有一个docker compose文件,包含两个微服务,我想利用URI路由来处理CORS。这是我的撰写文件: version: "3.1" services: auth-api: image: xxxx/auth-api:latest restart: always depends_on: - "user-api" user-api: image: xxxx/user-api:latest restart: always nginx:

我有一个docker compose文件,包含两个微服务,我想利用URI路由来处理CORS。这是我的撰写文件:

version: "3.1"
services:
  auth-api:
    image: xxxx/auth-api:latest
    restart: always
    depends_on:
      - "user-api"
  user-api:
    image: xxxx/user-api:latest
    restart: always
nginx:
    image: nginx
    restart: always
    ports:
      - "80:80"
    links:
      - "auth-api"
      - "user-api"
    volumes:
       - ./nginx:/etc/nginx
我想使用NGINX进行路由,但在尝试访问资源时遇到了404或405的问题。我尝试了几种不同的配置,有一段时间NGINX说它在启动时找不到api端点,我解决了这个问题,所以我认为我的问题主要是路由配置。对于这些请求,我希望它是
/auth
/user

worker_processes 1;

events { worker_connections 1024; }

http {

    sendfile on;

    upstream auth-target {
      server auth-api:8080;
    }

    upstream user-target {
        server user-api:8080;
    }

    server {
        listen       80;

        location /auth {

            proxy_pass http://auth-target;

            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
        }

        location /user {

            proxy_pass  http://user-target;

            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
        }


    }

}

我是NGINX的新手,所以我不确定我所做的是否正确。我还应该注意到,这两个API都有8080作为容器构建的一部分公开。

所以我的问题就在这里。路由正在运行,但我正在从我的服务返回404。这是因为位置路由正在与请求一起传递。所以最后我找到了这个答案:

它指出您需要一个尾随斜杠来删除该位置,因此我的配置文件最终看起来如下所示:

location /auth/ {

            proxy_pass http://auth-target/;

            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
        }