首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nginx和Gunicorn with Docker -如何限制只能访问Nginx的Flask应用程序?

nginx和Gunicorn with Docker -如何限制只能访问Nginx的Flask应用程序?
EN

Stack Overflow用户
提问于 2021-03-17 04:50:25
回答 2查看 320关注 0票数 0

我当前的Flask和Docker设置如下:

在此场景中,最终用户从端口80上的外部IP访问应用程序容器(这是对Nginx容器的请求),然后Nginx容器将该请求代理到使用Gunicorn在端口8000上运行的应用程序容器。然而,人们可以使用相同的URL绕过Nginx,但将端口指定为8000,使用Gunicorn直接访问应用程序。

如何限制对Flask应用程序的访问,使其只能通过Nginx容器访问?如果我在服务器的防火墙中拦截了8000端口,Nginx还能代理到运行在8000端口上的容器吗?

EN

回答 2

Stack Overflow用户

发布于 2021-03-17 05:41:20

如果您使用--bind=127.0.0.1:800 (doc),则gunicorn应仅限于(docker)主机。

您应该对此进行测试以进行确认。

票数 1
EN

Stack Overflow用户

发布于 2021-03-17 08:03:41

使用跨链接的通信。链接允许容器彼此发现,并安全地将关于一个容器的信息传输到另一个容器。设置链接时,将在源容器和收件人容器之间创建管道。然后,接收者可以访问关于源的选择数据。要创建链接,请使用--link标志。

首先启动你的应用。

代码语言:javascript
复制
docker run -d --name my_app APP_IMAGE

然后启动nginx容器,并链接到您的应用程序容器。

代码语言:javascript
复制
docker run -d -P --name nginx --bind=YOUR_NGINX_BIND --link my_app:my_app NGINX_IMAGE

你的应用程序现在可以通过别名"my_app“从你的nginx容器中访问(不需要ip地址)。它将不能从主机获得。

更多信息:https://docs.docker.com/network/links/#communication-across-links

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66663207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档