研究 PHP/Gearman。我试图了解 Gearman 服务器/进程如何确定什么构成“有效”客户端。
在我看到的文档中,文档显示了许多连接到 Gearman 服务器的客户端。但是,我没有找到任何描述服务器如何“验证”工作人员或限制工作人员/客户端从服务器访问/获取工作的内容。
作为示例,我创建了一个 Gearman 服务器,并且有一个包含 5 台子计算机的网络,每台子计算机都有一个“worker”。我邪恶的 friend 史蒂夫在网络中添加了另一台机器,它有自己的工作人员..
如何阻止 Steve 的工作人员从我的服务器获取工作!
有没有办法让客户/工作人员自行注册,这样我基本上就可以为客户/工作人员分配 ID ???
我相当确定有一种方法可以做到这一点,但我还没有遇到过。
我正在 Linux 环境上使用 PHP/MySQL/Gearman 进行测试。
谢谢
最佳答案
与 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 ACCEPT
iptables -A INPUT -p tcp --dport 4730 -j DROP
这样,您仍然可以从本地主机使用 Gearman。
免责声明:这条规则是我的想法,请在生产服务器上运行之前仔细检查这些规则。
希望这有帮助!
关于php - Gearman - 客户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11228888/