能不能再WORKERMAN里加一个FASTCGI的CILENT 这样可以直接对接FPM,以前的NGXIN-FPM业务逻辑可以直接迁移过去
你是说给workerman加一个fastcgi协议让workerman支持fastcgi服务吧?
以前的NGXIN-FPM业务逻辑迁移到workerman可以直接用workerman的http协议,不需要nginx,也不需要workerman支持fastcgi协议。当然也可以给按照workerman的接口写一个fastcgi协议,但是感觉用处不大。
如果老代码里没有强依赖FPM是可以做到迁移到worekrman的。但是目前的所有mvc框架都是基于FPM模式开发的,用了很多php-cli(workerman是基于php-cli)不兼容的代码,例如header setcookie exit die 等等,所以要迁移还是要做一些兼容的。
老大 现在我们是这样 业务都是基于nginx+fpm的,有新的需求需要长连接场景,想用WORKERMAN做TCPSERVER维持连接状态,再把请求转发到FPM上处理,不经NGINX节约一次HTTP的解析,直接走FASTCGI协议。
了解了,这个也是一种很好的思路。 不过workerman目前没有fpm的client库,只能自己开发了。 如果开发好了和我说下,我放到主页帮你宣传也方便其他人参考使用
老大 我在git上找了个别人写的 测试了下能通 可以通过ip端口 或者 unix sock和fpm进程通信
感谢,已经收藏
$this->_sock = pfsockopen($this->_host, $this->_port, $errno, $errstr, $this- $this->_sock = fsockopen($this->_
我看他源码里打开一个SOCK连接有两种方式,第一种是持久连接,那是不是WORKERMAN+FPM的形式用持久的比较好些。
是的,持久的好一些
还有个题外话请教下。。workerman listen后 子进程accpet监听用的fd 比如这个fd是80端口,之后有客户端connect进来后,accpet会返回一个新的fd用于和客户端连接用,那这个fd的端口是多少呢,如果是非80端口 防火墙应该会拦截的啊,这个怎么绕过的限制啊
一个socket连接包含 客户端ip:客户端端口<----->服务端ip:服务端端口 四个信息,四个信息中只要有一个不同就可以。
accpet后服务端端口是一样的,变化的是客户端ip:客户端端口
学习了,那Gateway/Worker 的进程模型 WOKER连接GATEWAY的时候 是每个WORKER的端口不同是吧
嗯
你是说给workerman加一个fastcgi协议让workerman支持fastcgi服务吧?
以前的NGXIN-FPM业务逻辑迁移到workerman可以直接用workerman的http协议,不需要nginx,也不需要workerman支持fastcgi协议。当然也可以给按照workerman的接口写一个fastcgi协议,但是感觉用处不大。
如果老代码里没有强依赖FPM是可以做到迁移到worekrman的。但是目前的所有mvc框架都是基于FPM模式开发的,用了很多php-cli(workerman是基于php-cli)不兼容的代码,例如header setcookie exit die 等等,所以要迁移还是要做一些兼容的。
老大 现在我们是这样 业务都是基于nginx+fpm的,有新的需求需要长连接场景,想用WORKERMAN做TCPSERVER维持连接状态,再把请求转发到FPM上处理,不经NGINX节约一次HTTP的解析,直接走FASTCGI协议。
了解了,这个也是一种很好的思路。
不过workerman目前没有fpm的client库,只能自己开发了。
如果开发好了和我说下,我放到主页帮你宣传也方便其他人参考使用
老大 我在git上找了个别人写的 测试了下能通 可以通过ip端口 或者 unix sock和fpm进程通信
感谢,已经收藏
我看他源码里打开一个SOCK连接有两种方式,第一种是持久连接,那是不是WORKERMAN+FPM的形式用持久的比较好些。
是的,持久的好一些
还有个题外话请教下。。workerman listen后 子进程accpet监听用的fd 比如这个fd是80端口,之后有客户端connect进来后,accpet会返回一个新的fd用于和客户端连接用,那这个fd的端口是多少呢,如果是非80端口 防火墙应该会拦截的啊,这个怎么绕过的限制啊
一个socket连接包含 客户端ip:客户端端口<----->服务端ip:服务端端口 四个信息,四个信息中只要有一个不同就可以。
accpet后服务端端口是一样的,变化的是客户端ip:客户端端口
学习了,那Gateway/Worker 的进程模型 WOKER连接GATEWAY的时候 是每个WORKER的端口不同是吧
嗯