一台服务器放多个网站,日常维护确实方便。需要留意的是,目录分成了几个文件夹,并不等于站点之间已经有了权限边界。
如果几个程序都用同一个高权限账户运行,其中一个站点的程序可能读到其他目录里的配置。网站之间是否隔开,应按实际使用的账户和权限验证,不能只看面板中分了几个站点。
建议分别管理的内容
- 程序与上传目录:按业务设置各自的存放位置,上传权限只覆盖需要写入的目录,不顺带放开其他站点。
- 运行身份:根据所用环境,为不同业务配置适当的运行账户或隔离方式,限制相互读写。
- 数据库账户:每个程序只使用自身需要的数据权限,避免所有网站共用一个可以管理全部数据库的账户。
- 配置和日志:分别保存,限制访问范围,避免备份任务或临时打包把其他站点的资料一起带出。
配置完成后,用对应站点实际运行的身份核对:能否正常上传和更新,是否能读到相邻站点的配置,是否拥有不需要的写入能力。要同时验证业务可用和越界访问被限制。
需要让两个站点交换文件的,也不必开放彼此整个目录。可以为明确用途单独安排共享位置,限定哪些程序能够读取、哪些能够写入,并把临时文件的清理方式约定好。权限边界应随着真实依赖设置,而不是为了省事把所有目录都放开。
已有站点较多时,不宜直接批量更改整台机器的所有者和权限。可以先选一个业务调整,记录影响并验证,再逐步处理其余站点。同机站点仍会共享主机资源,权限划分不能消除资源竞争。业务重要性或风险差异很大的项目,也可以评估独立部署。