首页 > 解决方案 > 用于评论应用的 Celery Flower NGINX 反向代理

问题描述

更新:我已经确定这不是 NGINX 的错,但我需要 NGINX 来修复它。详情在底部。

我正在尝试为我们创建的每个分支创建评论应用程序。我们使用 NGINX 作为我们的反向代理,使用 Celery 作为任务队列,使用 Flower 来监控任务。Flower 提供了一个url_prefix参数https://flower.readthedocs.io/en/latest/config.html#url-prefix

此前缀允许在非根 URL 上部署 Flower。换句话说,它允许我在反向代理后面部署花,而无需使用重写。

理想情况下,我们的 URL 方案应如下所示:

/flower/{branch_name} -> Dashboard
/flower/{branch_name}/ -> Same dashboard
/flower/{branch_name}/api/task/apply/examples.ping -> Task call
/flower/{branch_name}/api/task/apply/examples.ping/ -> Same task call
/flower/latest/ -> Latest build Dashboard
/flower/staging/ -> Staging Dashboard
/flower/v1/ -> Production Dashboard

我们当前的配置如下所示:

location ~ /flower/([a-zA-Z0-9]+)/? {
  proxy_pass          http://$1_flower:5555;
  proxy_set_header Host $host;
  proxy_redirect off;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
}

这目前有效 - 有点。

这些目前有效:

/flower/{branch_name}/
/flower/{branch_name}/api/task/apply/examples.ping

这些不会:

/flower/{branch_name}
/flower/{branch_name}/api/task/apply/examples.ping/

~~我很确定问题是我如何设置我的 NGINX 代理配置。~~

更新:我已经确定这不是 NGINX 的错,但我需要 NGINX 来修复它。

Flower 的 url_prefix 参数不明白

/flower/{branch_name}/

/flower/{branch_name}

是同一个端点。

我想我可以使用来自的重定向来解决这个问题

/flower/{branch_name}

/flower/{branch_name}/

有谁知道在不产生任务调用 URL 问题的情况下执行此操作的最佳实践?

标签: pythonnginxceleryreverse-proxyflower

解决方案


推荐阅读