繁体   English   中英

从ECS公共IPv4端点访问容器化的Django应用

[英]Accessing containerized Django app from ECS public IPv4 endpoint

我有一个存储在ECR的dockerized django应用程序。 当我设置新的ECS集群(使用Fargate )时,此图像正确加载,并且可以在Cloudwatch看到日志:

20:12:21 Operations to perform:
20:12:21 Apply all migrations: admin, auth, contenttypes, sessions
20:12:21 Running migrations:
20:12:21 No migrations to apply.
20:12:23 No changes detected
20:12:25 Watching for file changes with StatReloader
20:12:25 Performing system checks...
20:12:25 System check identified no issues (0 silenced).
20:12:26 June 22, 2019 - 20:12:26
20:12:26 Django version 2.2.2, using settings 'config.settings'
20:12:26 Starting development server at http://127.0.0.1:8000/
20:12:26 Quit the server with CONTROL-C.

但是,当我进入任务网络详细信息下列出的公共ipv4,并在浏览器中转到:8000时,没有加载任何内容,并且我看不到任何要发送到云监视容器中的服务器的请求。

我想知道问题是否与使用有关:容器设置中的python manage.py runserver 0.0.0.0:8000或安全组中的设置等。但我允许入站流量为127.0.0.10.0.0.0端口8000内部的设置已经存在。

在浏览各种文档时,我有些茫然,而且我的配置似乎也是如此。

如果您的容器在bridge mod中运行,则需要将主机端口映射到容器端口,例如docker run -p <port>:8000 。在浏览器中以public_ip:port查看它,您必须在fargate中进行类似的配置。

在AWS Control面板的Fargate中检查此特定容器定义是否具有正确的端口映射。 对于您的情况,您需要映射到端口: 8000因为您的应用程序正在侦听该端口。 另外,您需要在容器中创建该应用程序正在侦听0.0.0.0而不是127.0.0.1 (至少从日志端口,我可以看到将其绑定到127.0.0.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM