我正在设置一个 RHEL Web 服务器,它将托管多个域名的静态和动态内容。多个用户将通过 SSH 和 SFTP 更新文件。
每个域名的文件应该放在哪里?在我的默认系统上,只有一个/var/www/
,但不知道如何定位多个域。
查看文件系统层次标准(http://www.pathname.com/fhs/pub/fhs-2.3.html),似乎最好的选择是:
/srv/example.com/www/
/srv/example.org/www/
有什么偏好吗?
我正在设置一个 RHEL Web 服务器,它将托管多个域名的静态和动态内容。多个用户将通过 SSH 和 SFTP 更新文件。
每个域名的文件应该放在哪里?在我的默认系统上,只有一个/var/www/
,但不知道如何定位多个域。
查看文件系统层次标准(http://www.pathname.com/fhs/pub/fhs-2.3.html),似乎最好的选择是:
/srv/example.com/www/
/srv/example.org/www/
有什么偏好吗?
Apache 默认值通常是
/var/www/example.com/
,但您也可以遵循我认为非常好的 FHS 指南。重要的是保持系统之间的一致性,这就是为什么 FHS 是一个很好的参考。无论如何,我建议将它放在不同的分区中,因为:
请记住要非常小心目录权限,以避免来自一个站点的用户访问其他站点。
我们在结构方面有很好的经验
如果服务器由一家公司使用。如果您有要服务的客户域,您可能需要考虑
我喜欢 /var/www/example.com 约定。
我喜欢在 /etc/httpd/vhosts.d/example.com.conf 中有 conf 并包含在主 apache conf 中。我不让客户编辑这个。这样,如果您添加一个新域并且 configtest、reload 或 restart 检测到错误,那么很容易退出。
与:/var/www/example.com/html /var/www/example.com/cgi-bin /var/www/example.com/log
我使用posix acls在上述目录上添加默认acls,以便他们创建的任何文件都是使用rwx为其服务器用户(在suexec中使用的那个)/组创建的,这样无论他们在创建文件时是什么用户,网络服务器可以访问它们的用户,因此 VritualHosts 用户组的成员可以访问所有文件。
/var/www/example.com/private 我使用 private 作为密码和组文件的存放位置。
/var/www/example.com/conf/example.com.include.conf 如果我想允许站点所有者进行配置更改,我还会创建一个文件,例如:/var/www/example.com/conf/example .com.include.conf 包含在域主配置中的 VirtualHost 中,即 /etc/httpd/vhosts.d/example.com.conf。
你需要小心这一点,因为这意味着用户可以破坏你的整个配置,所以你要非常小心,用户知道他们在做什么。我倾向于在有多个 VirtualHosts 的服务器都属于同一个客户时这样做,所以如果破坏配置,他们只会破坏自己的站点。
我还建议使用 suexec,它允许进程以 apache 以外的用户身份运行,并且还允许以 apache 用户以外的用户身份运行动态内容。
见: http ://httpd.apache.org/docs/2.2/suexec.html
您可能还想查看各种 RLmit 指令,这些指令允许您在 VirtualHost 等基础上限制资源使用。看:
http://httpd.apache.org/docs/2.2/mod/core.html#rlimitcpu
我们使用以下布局
所以,
www.google.com
举个例子