下面是我的nginx配置:
location /flower/ {
rewrite /flower/(.*) /$1 break;
sub_filter '="/' '="/flower/';
sub_filter_last_modified on;
sub_filter_once off;
proxy_pass http://localhost: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";
}
location /flower/static/ {
sub_filter '/api' '/flower/api';
sub_filter "'/monitor" "'/flower/monitor";
sub_filter "'/worker" "'/flower/worker";
sub_filter "'/'" "'/flower/'";
sub_filter "'/dashboard'" "'/flower/dashboard'";
sub_filter '"/update-dashboard"' '"/flower/update-dashboard"';
sub_filter_types application/javascript; # by default, sub_filter won't touch JS
sub_filter_last_modified on;
sub_filter_once off;
alias <VIRTUALENV_PATH>/python3.4/site-packages/flower/static/;
expires 30d;
}
上面的链接:https://github.com/mher/flower/issues/414
我的花版本是0.9.2,nginx版本是1.12.1
我跑花如下:
$celery flower -A project_name --port=5555 --broker redis://broker_url:port
这将呈现以下内容:
我跑花如下:(used --url_prefix=flower)
$ celery flower -A project_name --port=5555 --broker redis://broker_url:port --url_prefix=flower
然后呈现所有静态文件,如下所示:
当我点击上面的任何一个选项卡(比如任务)时,就会出现问题,如下所示:
我注意到URL不是说:/flower/dashboard/ is /flower/flower/dashboard等等。
我在这里遗漏了什么?nginx配置中有什么需要更改的吗?
3条答案
按热度按时间z4iuyo4d1#
我不知道你为什么在nginx配置中使用
sub_filter
。在我看来,你是在一个特定的网址像
xyz.com/flower
这就是为什么你使用sub_filter
托管花。虽然我没有这样使用flower,但我觉得它是错误的,我还发现了另一个错误,即你把
location /flower/static/
放在location /flower/
下面,因此所有的静态请求都将由location /flower/
代码块处理。你的nginx配置应该看起来像这样:
您可以阅读有关documentation和example上的设置的更多信息
mhd8tkvw2#
通过将
--url_prefix=flower
更改为--url_prefix=/flower
,它为我修复了。e5nszbig3#
如果花儿是这样跑的:
那么nginx配置只需要:
我用的是flower 1.2.0