【问题标题】:Nginx Proxy Pass Issue - Docker, React and ExpressNginx 代理通行证问题 - Docker、React 和 Express
【发布时间】:2020-08-02 00:31:12
【问题描述】:

我有一个如下所示的 docker-compose 设置:

容器:

  1. 主要的 nginx 容器网关。 /todos/ 路由被 proxy_passed 到:
  2. 另一个 nginx 容器。这个代理传递给:
  3. React 前端(用于 todos 应用程序) 或
  4. 一个 node express api(处理 todo 逻辑)

我正在尝试使用 process.env.PUBLIC_URL + "/api" 从 React 应用程序调用 todos api,以便访问我的 express api 上的 "/" 路由。但是这不起作用,我必须在 React 调用中添加另一个“/”才能使其工作 - 像这样:process.env.PUBLIC_URL + /api/

注意:我的 React 主页设置为“/todos”

这显然是我如何重写 Nginx 上的路由的问题,但我已经尝试了所有组合,并且无法摆脱对尾随斜杠的需要。这是我的 Nginx 配置:

  1. 入口配置:
upstream todosnginx {
    server todosnginx;
}

server {
    listen 80;
    error_page 404 /404.html;

    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }

    location /todos {
        rewrite /todos/(.*) /$1 break;
        proxy_intercept_errors on;
        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-Proto $scheme;
        proxy_pass http://todosnginx/;
    }

}

还有 todos nginx:

upstream todoclient {
    server todoclient:3000;
}

upstream todoserver {
    server todoserver:9000;
}

server {
    listen 80;

    location / {
        proxy_pass http://todoclient/;
    }

    location /sockjs-node {
        proxy_pass http://todoclient;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }

    location /api {
        rewrite /api/(.*) /$1 break;
        proxy_pass http://todoserver/;
    }

}

我已经尝试过:

rewrite /api(.*) /$1 break;

在 todosnginx 配置文件中, 和

location /api/

我已经尝试添加斜杠或删除斜杠以及许多其他组合。如果你知道我哪里出错了,那就太好了。

非常感谢,R

【问题讨论】:

    标签: reactjs docker express nginx


    【解决方案1】:

    重写 /api(.*) $1 break;

    如果不起作用,请发布日志。

    【讨论】:

      猜你喜欢
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      相关资源
      最近更新 更多