如何将Locust worker节点连接到使用HTTPS地址运行的master节点
解决方案
1. 核心概念澄清
Locust 1.4.4版本的master与worker节点通信默认基于ZeroMQ TCP协议,使用两个独立端口:
- 5557端口:master接收worker上报的测试数据
- 5558端口:master向worker下发测试指令
你提到的https://locustmaster.gcp.mycompany是master节点的Web UI访问入口,并非worker通信的目标地址,默认worker不需要通过HTTPS协议连接master。
2. 标准内网部署配置(符合GCP + HIPAA合规要求)
如果你的worker节点和master节点部署在同一个GCP VPC内,直接走内网通信,配合GCP默认的传输加密即可满足HIPAA要求,配置方式如下:
- 确保master节点的5557、5558端口对worker所在的VPC网段开放入站规则
- worker启动时添加如下参数即可:
locust -f your_test_script.py --worker --master-host=<master节点内网IP> --master-port=5557
如果需要自定义通信端口,master启动时添加--master-bind-port <端口号>参数指定即可,worker侧同步调整--master-port参数。
3. 跨公网/强制HTTPS代理场景配置
如果你的集群要求所有跨节点通信必须走HTTPS协议,需要在master节点前部署TCP over HTTPS反向代理(比如Nginx的stream模块搭配SSL终止),此时需要额外调整worker的通信配置:
3.1 代理端配置(master侧前置Nginx)
新增Nginx stream配置,将443端口的流量映射到master的5557、5558端口,配置合规SSL证书即可匹配现有HTTPS访问要求。
3.2 worker侧配置
Locust 1.4.4原生不支持直接通过HTTPS连接master,需要借助stunnel工具建立本地TLS隧道,操作步骤如下:
- 安装stunnel工具
- 新增stunnel配置文件
locust_worker.conf:
[locust-master] client = yes accept = 127.0.0.1:5557 connect = locustmaster.gcp.mycompany:443 verify = 4 CAfile = /path/to/your/trusted/ca.crt
- 启动stunnel隧道
- 启动worker时指向本地隧道端口即可:
locust -f your_test_script.py --worker --master-host=127.0.0.1 --master-port=5557
这种方式所有worker到master的通信都会通过TLS加密传输,符合HIPAA合规要求。
4. 身份验证配置
如果你的master通信端口需要配置身份校验,1.4.4版本可以通过--master-authenticator参数自定义验证逻辑,可编写简单Python验证函数,在worker连接时传递预共享密钥完成身份校验,避免未授权的worker接入。
内容的提问来源于stack exchange,提问作者Cyberclops
相关产品推荐
相关产品推荐

