bug_x

导航

 

1、

作者:eechen
链接:https://www.zhihu.com/question/275295723/answer/380558201
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Swoole不能代替Apache和Nginx这些通用的HTTP服务器.

但基于Swoole开发的PHP应用不依赖Apache和Nginx也能提供生产级别的HTTP服务.

因为Swoole内置了异步多进程且能处理静态文件,记录日志和支持PHP编程的HTTP服务器.

也就是说,你可以把swoole_http_server当成一个PHP应用服务器,就好比Tomcat之于Java,Tomcat不依赖Apache和Nginx也能提供HTTP服务.

总而言之,为了简化开发和运维,前期完全可以不去管Apache和Nginx这些东西,专注于围绕swoole_http_server写业务逻辑就好.

另外,Swoole还内置了WebSocket服务器,而且swoole_websocket_server包含了swoole_http_server,也就是说:
监听 request 事件就能处理HTTP.
监听 open 和 message 事件就能处理WebSocket.

不管你是用HTTP长连接(AJAX长轮询)还是WebSocket全双工连接,你都可以完全脱离Apache和Nginx只关注Swoole实现你的即时通讯服务.

其实你可以把Swoole理解为一个支持PHP异步编程的Nginx服务器.

如果你的服务大到需要HTTP/WebSocket反向代理,当然还是Nginx的反向代理更加专业些.

 大佬外文:https://martinfowler.com/articles/microservices.html


 

posted on 2020-01-15 17:07  bug_x  阅读(144)  评论(0编辑  收藏  举报