angular - 从 ECS 实例调用服务发现端点 [nginx, angular, express]
问题描述
我有一个角度应用程序,它使用 nginx 作为反向代理通过/api位置连接到后端服务器。我在一个作为服务的 ECS 实例上运行的 Docker 容器中有 Angular 应用程序,它将容器中的主机端口 80 绑定到 8080。
我已经启动了后端作为一个容器,通过 ECS 将 3000:3000 作为单独的服务公开。这一次,我使用 awsvpc 来启用使用 A 记录的此端点的服务发现。我正在重写传入的 url 以远程前缀:/api
现在,如果我尝试从 EC2 实例中 ping 后端服务(使用 curl),我就能收到响应。但是,我的 Angular 应用程序无法连接到后端服务。我认为这是 nginx.conf 文件中的配置问题(如下):
worker_processes 2;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8080;
server_name localhost;
root html/composite-app;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
rewrite /api/(.*) /$1 break;
proxy_pass http://backend.local:3000;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include servers/*;
}
谁能指出我如何调试它的正确方向?我已经坚持了好几天了......我尝试使用桥接模式并硬编码容器的IP地址(172.17.0.2:3000)并且它运行良好。但是,我想使用服务发现路由。
解决方案
推荐阅读
- google-tag-manager - 谷歌标签管理器在外部插入自定义 HTML
- tree - Angular 组件 mat-tree 展开所有节点
- python - 散点图中两个特征之间的比例
- perl - 终端窗口和 txt 文件中的输出不同?
- svg - 调整svg组的路径
- nativescript - tns 预览不适用于带有 nativescript-vue 的 android
- tensorflow - 合并一个 LSTM 模型输出和 VGG 模型输出时出错
- mongodb - mongodb where不存在(减去两个查询结果)
- codeigniter - Codeigniter 验证没有显示任何内容
- mongodb - 将数据从 mongodb 迁移到 hdfs