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

Spring Boot+Angular项目Nginx代理配置问题求助

解决Angular Docker容器中Nginx代理后端接口的502问题

等价于proxy.config.json的Nginx配置

替换Nginx默认配置文件(通常路径为/etc/nginx/conf.d/default.conf)为以下内容:

server {
    listen 80;
    server_name localhost;

    root /usr/share/nginx/html;
    index index.html index.htm;

    # 处理Angular单页应用路由刷新404问题
    location / {
        try_files $uri $uri/ /index.html;
    }

    # 匹配/api开头的请求,转发到Spring Boot后端
    location /api {
        proxy_pass http://localhost:8443;
        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;
        
        # 若后端使用自签名HTTPS证书,取消下方注释跳过验证
        # proxy_ssl_verify off;
    }
}

关键配置说明

  • location /api:精准匹配所有以/api开头的前端请求,和本地proxy.config.json的代理规则完全对齐
  • proxy_pass http://localhost:8443:不带末尾斜杠,确保请求路径完整转发(比如/api/user/authenticate会转发到http://localhost:8443/api/user/authenticate,完美适配后端server.servlet.context-path=/api的配置)
  • 请求头配置:保证后端能正确获取客户端原始请求信息,避免权限或路由判断异常

Docker环境额外注意事项

如果用Docker Compose编排多容器,容器内的localhost指向自身,需将proxy_pass中的localhost:8443替换为Spring Boot容器的服务名(例如http://backend:8443,其中backend是docker-compose.yml中后端服务的名称),同时确保后端容器的8443端口已暴露并加入同一Docker网络。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:35:22