我正在尝试为包含.net核心服务的项目配置istio服务网格,该项目的前端为angular 6。
有趣的是,如果我通过build部署应用程序并在docker内部运行,则应用程序运行良好。
示例:在节点图片中使用prod或qa配置进行角度服务。
但是如果我通过复制html文件夹中的dist文件夹内容来使用nginx图像,则应用程序将无法工作。
注意:已有Istio配置。
我通过
使用nginx部署为角度创建了目标规则,虚拟服务节点端口:
上游连接错误或在标头之前断开连接/重置。重置原因:连接失败
ClusterIp:
请求无法获得服务
负载均衡器
请求未达到
如Envoy not connecting中所述,尝试覆盖Nginx的default.conf,但文件未被覆盖。
答案 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; } }