无法访问Angular + Nginx + Insio应用程序

时间:2020-01-07 05:38:41

标签: angular nginx kubernetes istio

我正在尝试为包含.net核心服务的项目配置istio服务网格,该项目的前端为angular 6。

有趣的是,如果我通过build部署应用程序并在docker内部运行,则应用程序运行良好。

示例:在节点图片中使用prod或qa配置进行角度服务。

但是如果我通过复制html文件夹中的dist文件夹内容来使用nginx图像,则应用程序将无法工作。

注意:已有Istio配置。

我通过

使用nginx部署为角度创建了目标规则,虚拟服务
  1. 节点端口:

    上游连接错误或在标头之前断开连接/重置。重置原因:连接失败

  2. ClusterIp:

    请求无法获得服务

  3. 负载均衡器

    请求未达到

Envoy not connecting中所述,尝试覆盖Nginx的default.conf,但文件未被覆盖。

1 个答案:

答案 0 :(得分:0)

经过大量研究,我找到了解决方案。

如istio文档nginx upstream error中所述,我对nginx.conf进行了如下更改。

upstream application {
  server 0.0.0.0:[PortNumber];
}

server {
  listen [PortNumber] default_server;

  charset utf-8;

  sendfile on;

  root /usr/share/nginx/html;

  #Caches static assets
  location ~ ^/(assets|bower_components|scripts|styles|views) {
    expires     31d;
    add_header  Cache-Control public;
  }

  #Caches Bundles created by angular cli
  location ~* \.(?:bundle.js|bundle.css)$ {
    expires 1M;
    access_log off;
    add_header Cache-Control "public";
  }

  ##
  # Main file index.html sending not found locations to the main
  ##
  location / {
    proxy_pass http://application;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    expires -1;
    add_header Pragma "no-cache";
    add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";

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