首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gearman -客户端

Gearman -客户端
EN

Stack Overflow用户
提问于 2012-06-27 22:46:10
回答 3查看 1K关注 0票数 2

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

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

例如,我创建了一个Gearman Server,并且我有一个包含5个子计算机的网络,每个子计算机都有一个"worker“。我的邪恶朋友Steve向网络中添加了另一台机器,它有自己的工人..

如何阻止Steve的工作人员从我的服务器上获取工作!

有没有办法让客户端/工作者自己注册,这样我基本上就可以给客户端/工作者分配ID了?

我相当确定有一种方法可以做到这一点,但我还没有遇到过。

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

谢谢

EN

回答 3

Stack Overflow用户

发布于 2012-06-27 22:57:05

与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

这样,您仍然可以从localhost使用Gearman。

免责声明:此规则在我的头上,请仔细检查这些规则,然后在生产服务器上运行它。

希望这能有所帮助!

票数 2
EN

Stack Overflow用户

发布于 2012-06-27 23:00:20

通过侦听(1)仅在本地主机上或(2)在需要外部访问时设置适当的防火墙规则。创建Gearman的目的是尽可能减少开销,没有身份验证协议。如果这还不够,可以只监听localhost &使用SSH隧道连接到该机器。还有一种可能是使用HTTP协议(请参阅here),并在其前面放置一个验证代理。

票数 0
EN

Stack Overflow用户

发布于 2016-06-11 05:12:57

Gearman服务器只能在您的内部网络上访问。您的应用程序所在的网络不应包含未经授权的设备。您的应用服务器不应该与您的无线路由器共享网络。Gearman将只向注册到具有相同任务名称的特定服务器的服务器发送作业。如果您公司的一名员工将同名任务注册到您的生产Gearman主管作为一个笑话,您有更大的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11228888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档