You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx+Docker反向代理路径问题求助:/myapp跳转后返回404

解决方案

方法1:用proxy_redirect修正跳转URL

后端返回的Location: /login这类跳转没有带上/myapp前缀,直接用Nginx改写响应头里的跳转地址就行。修改你的location配置:

location /myapp {
    proxy_pass         http://192.168.1.150:8080;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection keep-alive;
    proxy_set_header   Host $http_host;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
    # 把后端返回的根路径跳转替换成带/myapp前缀的路径
    proxy_redirect     http://192.168.1.150:8080/ https://$http_host/myapp/;
    proxy_redirect     / /myapp/;
}

方法2:调整proxy_pass路径,让后端接收带前缀的请求

如果你的myapp支持接收/myapp开头的请求,直接把proxy_pass的目标路径加上/myapp,同时给后端传递前缀信息:

location /myapp {
    proxy_pass         http://192.168.1.150:8080/myapp;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection keep-alive;
    proxy_set_header   Host $http_host;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
    # 告诉后端它的访问前缀是/myapp
    proxy_set_header   X-Forwarded-Prefix /myapp;
}

这种情况下后端收到的请求都是/myapp/xxx格式,返回的跳转也会自动带上/myapp前缀。

方法3:用rewrite重写请求路径

如果前两种方法不生效,试试先把请求路径里的/myapp去掉再传给后端,同时修正跳转:

location /myapp {
    rewrite ^/myapp/(.*)$ /$1 break;
    proxy_pass         http://192.168.1.150:8080;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection keep-alive;
    proxy_set_header   Host $http_host;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_redirect     / /myapp/;
}

验证步骤

修改配置后,执行命令重载Nginx配置(Docker环境用docker exec <nginx容器名> nginx -s reload),再访问https://192.168.1.150/myapp,检查跳转后的URL是否为https://192.168.1.150/myapp/login,且能正常访问页面。

内容的提问来源于stack exchange,提问作者koger23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:37:29