Docker环境下Nginx反向代理Blazor WASM报502 Bad Gateway错误求助
排查Nginx反向代理Blazor WASM的502 Bad Gateway问题
问题根源
- 容器间通信端口错误:反向代理配置里的
upstream ui指向了blazorstandalone:8080,但Blazor容器内部的Nginx实际监听的是80端口。Docker容器间通信使用容器内部端口,宿主机的8080:80是外部访问的映射端口,容器间访问不需要用这个映射端口。 - Host头配置不当:
proxy_set_header Host $host:44395会把带端口的Host头传给Blazor容器,而Blazor的Nginx配置未匹配带端口的Host,可能导致请求无法正确路由。
修复步骤
1. 修正反向代理的上游服务端口
编辑nginx/nginx.local.conf中的upstream块,将端口改为容器内部的80:
upstream ui { server blazorstandalone:80; # 替换原8080为容器内部端口80 }
2. 调整Host头配置
修改反向代理location块中的proxy_set_header Host,去掉多余的端口:
proxy_set_header Host $host;
3. 重新构建并启动容器
执行命令刷新容器:
docker compose down docker compose build docker compose up -d
验证
访问https://www-local.test.com:44395,此时反向代理应能正确转发请求到Blazor容器,502错误会消失。
内容的提问来源于stack exchange,提问作者fingers10
相关产品推荐
相关产品推荐

