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