网络服务器根目录位于 /home/user

网络服务器根目录位于 /home/user

我的网站目前托管在 /var/www 目录中 /dev/vda1 分区中的 Debian 非 LVM VPS 上。

我的 VPS 上的根分区 /dev/vda1 已满 99%。然而 /dev/vda6 上的 home/ 分区仅显示 8% 的磁盘使用率。

在我看来,调整 /dev/vda1 分区的大小和缩小 /dev/vda6 是有风险的,尤其是当它涉及非 LVM 分区时。

因此,我尝试“开箱即用”的解决方法,并将我的所有网站逐字复制到 /home/user/web。我将网络服务器 (cq Lighttpd) 配置为指向新位置并重新启动网络服务器。

一切正常,最近几天没有出现任何问题。

我知道 /home/user/web/ 不是存储网站的理想位置,至少我认为没有人会鼓励这样的配置。

我的问题是:为什么 /home/user/web 不是理想的网络根目录?

答案1

是什么让您认为它不理想?

它并不比任何其他目录更理想,只要目录和文件的权限以及服务器配置详细信息正确,它就与/var/www.

只要 Web 服务器(apache 或其他)配置正确,虚拟主机的 DocumentRoot 位于哪个目录实际上并不重要。

默认情况下,我自己的虚拟主机设置脚本/home/WEB/$vhostuser/htdocs与其他目录一起用于/home/WEB/$vhostuser/日志、特定于虚拟主机的 CGI 脚本等,以便与虚拟主机相关的所有内容都位于同一目录树下。

我还使用apache-mpm-itk这样每个虚拟主机都在它自己的用户 ID 下运行。这具有安全性优势(例如,来自 vhost1 的脚本无法触及属于 vhost2 的文件)和其他优势(例如,日志文件可以chown发送给用户,因此它们是网站配额的一部分,而不是由 root 拥有。 ..他们有责任定期下载和删除它们)。

当然,其中大部分现在已经过时了,因为您可以更好地与虚拟机和容器隔离 - 但当我在 90 年代第一次开始编写虚拟主机自动化脚本时,这些都不存在。

答案2

通过 Slicehost 进行 Debian Slice 配置。使用成熟的 使用 Apache 设置 VPS,并且使用用户主目录作为 webroot 没有任何问题。问题是必须使用 Apache 的安全规则(而不是基本安全规则)正确保护用户目录。

答案3

潜在的安全风险,您也许可以使用 chroot(或监狱或区域)来解决此问题。

相关内容