研究PHP/Gearman。我正在尝试了解Gearman服务器/进程如何确定什么构成“有效”客户端。

在我所看到的文档中,文档显示了许多连接到Gearman服务器的客户端。但是,我还没有发现任何描述服务器如何“验证”工作程序或限制工作程序/客户端从服务器访问/获取工作的内容。

举例来说,我创建了一个Gearman服务器,并且我有一个包含5个子计算机的网络,每个子计算机都有一个“ worker ”。我邪恶的 friend 史蒂夫(Steve)将另外一台机器与它自己的 worker 一起添加到网络中。

我该如何阻止Steve的 worker 从服务器上获得工作!

有没有办法让客户/ worker 自己注册,所以我基本上可以将ID分配给客户/ worker ???

我相当确定有办法做到这一点,但我还没有想到。

我正在使用PHP/MySQL/Gearman在Linux环境中进行测试。

谢谢

最佳答案

像memcached一样, gearman没有任何访问控制或身份验证

最好的解决方案是依靠操作系统,例如防火墙规则。

iptables 应该阻止所有传入端口4730(标准Gearman端口)的流量,像这样
iptables -A INPUT -p tcp --dport 4730 -s server1 -j ACCEPT
...
iptables -A INPUT -p tcp --dport 4730 -s server5 -j ACCEPTiptables -A INPUT -p tcp --dport 4730 -j DROP
这样,您仍然可以从本地主机使用Gearman。

免责声明:此规则是我的头等大事,在生产服务器上运行该规则之前,请仔细检查这些规则。

希望这可以帮助 !

关于php - Gearman-客户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11228888/

10-10 14:10