其实我说的lnmp,指的主要是nginx+php-fpm
我说说我觉得不好的原因吧(主要对标nodejs和go):
环境配置比较复杂,需要安装nginx + php-fpm(这个默认编译)
对docker不太友好,docker最佳实践都是一个应用一个容器,这个需要安装一套。
fastcgi + php-fpm个人感觉并发效率不高,内存消耗大。
我之前想着既然都写有php-fpm了,为啥不用c写一套http类库,类似于nodejs和go。
后面搜索了下好像目前已经有一个了(还是国人写的)swoole
。
但是感觉目前并不是特别流行,我觉得这种方式的优势主要是配置部署方便,效率高。但是没有基于swoole
的比较完善出名的框架,例如laravel
,ci
,Yii
等,可能这也是不流行的原因。
php可以单独完成http模块,不知道为何要依赖nginx。
不知道大家是怎么看的?欢迎大家一起探讨
很多非动态请求走nginx可以极大降低消耗,可以去找找文章看一下性能对比,或者自己进行测试,不是一个量级的性能。
环境配置这方面,php一般来讲肯定是要编译的,nginx可以直接从仓库拉取。
此外nginx可以实现很多功能,反向代理,sni代理,等等,可适配很多不同场景(特别是一台服务器运行多种语言)