Angular docker无法访问后端服务容器

Angular docker无法访问后端服务容器,angular,docker,nginx,Angular,Docker,Nginx,我有一个angular SPA和一个后端服务,它们都是通过docker容器部署的。我似乎无法让angular应用程序连接到后端服务 在angular容器中使用Nginx,配置如下 server { root /usr/share/nginx/html/; location / { try_files $uri $uri/ /index.html =404; } location http://backend-service { proxy_set_heade

我有一个angular SPA和一个后端服务,它们都是通过docker容器部署的。我似乎无法让angular应用程序连接到后端服务

在angular容器中使用Nginx,配置如下

server {

  root /usr/share/nginx/html/;

  location / {
    try_files $uri $uri/ /index.html =404;
  }

  location http://backend-service {
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_pass http://backend-service:8080/;
  }
}
以及angular应用程序的环境文件

export const environment = {
  api: 'http://backend-service',
};
容器是链接的,我可以通过服务名从Nginx/angular容器中ping后端容器,我想我在Nginx配置文件中出错了


有什么见解吗

最后的诀窍是从环境文件中删除docker引用

export const environment = {
  api: '/api',
};
然后调整default.conf文件以匹配:

server {
  listen 80;
  server_name terrible-spa;
  root /usr/share/nginx/html/;
  index index.html index.html;

  location /api {
    proxy_pass http://backend-service:8080/api;
  }

  location / {
    try_files $uri $uri/ /index.html =404;
  }
}

这将正确地将所有调用/api转发到后端服务容器

NGINX是否成功返回错误响应?比如说503。。。只是为了验证NGINX是否正在运行,问题是否在任何端点上碰到了404,而该端点应该在后端服务上解决?答案很好