芹菜花安全生产

我正在寻找使用花( https://github.com/mher/flower )来监控我的芹菜任务,而不是在他们的文档( http://docs.celeryproject.org/en/latest中build议的django-admin /userguide/monitoring.html#flower-real-time-celery-web-monitor )。 但是,因为我是新手,所以对于Flower的页面只基于HTTP,而不是HTTPS,我有点困惑。 我如何启用我的芹菜任务的安全性,使任何老用户不能只访问不需要login的网站http://flowerserver.com:5555和改变的东西?

我已经考虑了芹菜自己的文档 ,但不幸的是,没有提到如何保护花的API或networking用户界面。 它说: [Need more text here]

谢谢!

更新:我的问题是在这里的一部分重复: 如何将身份validation和端点添加到Django芹菜花卉监测?

但是,我在这里澄清了他的问题,询问如何使用包含nginx,gunicorn和celery的环境在同一台远程机器上运行它。 我也想知道如何设置Flower的外部可访问的url,但是如果可能的话,也会喜欢https而不是http(或者某种保护webui并远程访问它的方法)。 我还需要知道,如果离开Flower,对于任何可能访问Flower的内部API的人来说都是一个相当大的安全风险,并且保证这个的最佳方式是什么,或者只是完全禁用,需要的基础。

您可以使用–auth标志来运行花卉,该标志将使用特定的Google电子邮件进行验证:

 celery flower --auth=your.email@gmail.com 

编辑1

花的新版本需要更多的标志和注册的OAuth2客户端与谷歌开发者控制台 :

 celery flower --auth=your.email@gmail.com --oauth2_key="client_id" --oauth2_secret="client_secret" --oauth2_redirect_uri="http://example.com:5555/login" 

oauth2_redirect_uri必须是实际的花登录网址,并且还必须添加到Google Development Console中的授权重定向网址。

不幸的是,这个功能在当前稳定版本0.7.2中无法正常工作,但是现在已经在开发版本0.8.0-dev修复了。

编辑2

您可以使用基本身份验证配置Flower:

 celery flower --basic_auth=user1:password1,user2:password2 

然后阻止所有5555端口,但本地主机和配置反向代理为Nginx或为Apache:

 ProxyRequests off ProxyPreserveHost On ProxyPass / http://localhost:5555 

然后确保代理mod是开启的:

 sudo a2enmod proxy sudo a2enmod proxy_http 

如果你不能在一个单独的子域上设置,例如: flower.example.com (config上面),你可以为example.com/flower设置它:

url_prefix运行花:

 celery flower --url_prefix=flower --basic_auth=user1:password1,user2:password2 

在Apache配置:

 ProxyPass /flower http://localhost:5555 

当然,确保SSL已配置,否则没有意义:)

我想在我的web服务器的子目录中的花,所以我的nginx反向代理配置看起来像这样:

 location /flower/ { proxy_pass http://localhost:5555/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; } 

现在我可以通过www.example.com/flower开花(密码保护)

这大部分来自Flower文档页面,关于配置一个nginx反向代理:

http://flower.readthedocs.org/en/latest/reverse-proxy.html

是的,没有认证的花,因为它只是与经纪人交谈,但如果你通过SSL运行,那么基本认证应该足够好。

HTTP和HTTPS如何影响Celery的安全性? 你指的是什么用户登录?

花监视器连接到工人的芹菜队列。 设置Flower时,需要提供连接字符串[broker]:// [user_name]:[password] @ [database_address]:[port] / [instance]。 用户名和密码是登录到您选择的数据库的凭证。

如果你指的是这个登录,不会简单地禁用/删除他们的登录就够了吗?