现在越来越多的主机商使用网上一些为宝塔专门定制的虚拟主机管理系统,出售虚拟主机,但是实际上从安全性和稳定性上来说,都是有缺陷的,下面就给大家分析一下原因。
首先宝塔所有站点的php进程池(php-fpm)是共享的,php-fpm在配置文件中可以设置php起始进程数量,最大进程数量以及最小进程数量(如下图)。然而宝塔对于php-fpm配置每个站点是共享的,也就是说如果一个网站访问量过大占用进程数过多,其它站点就没有进程数量可以用了。在这一点上宝塔还不如amh面板,amh对于每个站点可以单独配置php-fpm,另外kangle商业版对于每个主机也是独立进程池的(现在kangle商业版早就免费开放使用了)。
然后说说安全性上的问题,很多人认为用宝塔开虚拟主机,只需要打开防跨站,禁用危险php函数就万事大吉了,实际上根本不是这样。大家都知道,php的session会保存在服务器的/tmp目录里面,宝塔里面每个虚拟主机都可以访问服务器的/tmp目录。如果某个网站程序后台的验证方式是session,那么其它虚拟主机就可以获取到他的session文件,从而不需要密码就可以直接进入网站后台。kangle每个主机都是以独立的linux用户运行的(如下图),因此他们生成的session也是以不同的用户保存的,虽然kangle也可以访问到服务器/tmp目录,但是当前用户不能访问其它用户的文件,因此其它主机的session的内容不会被泄露。
kangle这种每个主机独立用户、独立进程运行的方式非常适合出售虚拟主机,不论安全性和稳定性也都是所有面板里面最高的。因为kangle不同主机是不同的用户,在kangle里面即使是不开防跨站,也是安全的。之前发生过几次kangle被黑事件,是因为一些脚本没有设置好关键文件的权限(现在都已修复),和kangle本身安全性无任何关系。