以下是我的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
我按照以下方式运行鲜花:(使用了--url_prefix = flower)
$ celery flower -A project_name --port=5555 --broker redis://broker_url:port --url_prefix=flower
当我单击上面的任何选项卡(例如任务)时,就会出现问题,如下所示:
我注意到该网址不是说:/ flower / dashboard /是/ flower / flower / dashboard等等。
我在这里想念什么?在Nginx配置中有什么要更改的吗?
答案 0 :(得分:1)
我不确定您为什么在nginx配置中使用sub_filter
。
在我看来,您是在xyz.com/flower
之类的特定网址中托管鲜花,这就是为什么您使用sub_filter
的原因。
尽管我没有以这种方式使用花,但是在我看来这是错误的。我会发现另一个错误,即您将location /flower/static/
放在location /flower/
下方,因此所有静态请求都将由location /flower/
代码块处理
您的nginx配置应如下所示:
server {
location /flower/static {
alias /the/path/to/flower/static;
}
location /flower {
rewrite ^/flower/(.*)$ /$1 break;
proxy_pass http://localhost:5555;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
}
您可以详细了解documentation和example上的设置