NGINX反向代理Celery Flower多分支评审应用的路径配置咨询
最佳实践配置方案
直接替换你现有的Nginx配置段即可,完全覆盖所有需求场景,不会对任务调用接口产生影响:
# 仅匹配无尾斜杠的纯分支路径,做301永久重定向到带斜杠路径,不会命中任何深层API请求 location ~ ^/flower/([a-zA-Z0-9]+)$ { return 301 /flower/$1/; } # 匹配所有带分支前缀的请求,统一转发到对应Flower实例 location ~ ^/flower/([a-zA-Z0-9]+)/(.*)$ { proxy_pass http://$1_flower:5555/$2$is_args$args; 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/{分支名}这一层级的路径,完全不会触及/flower/{分支名}/xxx这类API路径,所以重定向逻辑不会对任务调用接口产生任何影响。 - 第二条规则会将分支名之后的所有路径原封不动传递给对应Flower实例,无论API末尾是否带斜杠都能正常识别,解决了原配置中带尾斜杠的API路径无法访问的问题。
- 原可正常访问的路径不受任何影响,之前无法访问的两个场景全部覆盖:
/flower/{branch_name}自动301跳转到带斜杠的路径,正常进入监控面板/flower/{branch_name}/api/task/apply/examples.ping/末尾带斜杠的API路径可正常调用
测试阶段可以先把301换成302临时重定向,避免浏览器缓存永久重定向规则影响调试,验证所有功能正常后再改回301即可。
内容的提问来源于stack exchange,提问作者Mikko
相关产品推荐
相关产品推荐

