[英]Nginx Proxy Pass Issue - Docker, React and Express
我有一个 docker-compose 设置,如下所示:
我正在尝试使用 process.env.PUBLIC_URL +“/api”从 React 应用程序调用 todos api,以便访问我的 express api 上的“/”路由。 但是这不起作用,我必须在 React 调用中添加另一个“/”才能使其工作 - 像这样:process.env.PUBLIC_URL + /api/
注意:我的 React 主页设置为“/todos”
这显然是我如何对 Nginx 上的路线进行重写的问题,但我已经在阳光下尝试了所有组合,并且无法摆脱对斜杠的需要。 这是我的 Nginx 配置:
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/;
}
}
还有待办事项 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 conf中,和
location /api/
我尝试添加斜杠或删除斜杠和许多其他组合。 如果你知道我在哪里出错了,那就太好了。
非常感谢, R
重写 /api(.*) $1 break;
如果它不起作用,请发布日志。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.