使用 /var 或 /srv 存储 Apache 数据和日志?

使用 /var 或 /srv 存储 Apache 数据和日志?

我一直这样配置 Apache:

/etc/httpd/conf/httpd.conf(主要 Apache 配置)

<Directory />
   Options None
   AllowOverride None
   Order deny,allow
   Deny from all 
</Directory>


<Directory "/var/www/html">
    Options None
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

虚拟主机配置

<VirtualHost *:80>
        ServerName xxxxx.co.uk
        ServerAlias xxxxx.co.uk xxxxx
        DocumentRoot /var/www/html/xxxxx.co.uk   
        ErrorLog /var/www/log/xxxxx.co.uk
        <Directory "/var/www/html/xxxxx.co.uk">
                AllowOverride None
                Options -Indexes -FollowSymLinks
                Order Allow,Deny
                Allow from all
        </Directory>
 </VirtualHost>

我注意到有些人似乎为网页内容和日志创建了一个特定的文件夹,即

/srv/html/xxxxx.co.uk
/srv/log/xxxxx.co.uk

我想知道是否有人可以解释一下为什么会这样?这样做是否更安全?还有其他原因将 Web 内容和日志移出 /var/..... 路径吗?

提前致谢 :-)

答案1

除了 Mike 关于 FHS 的观点外,我还看到了来自 Ubuntu 论坛的讨论:

http://ubuntuforums.org/showthread.php?t=1425726

最好的评论是:

/var 是一个较旧的约定。它用于存储随时间变化的数据(“可变数据”),例如缓存、假脱机、日志、各种内务管理和管理文件,而“用户数据”则位于主目录中……但在某些时候,可能由于没有其他合适的地方,/var 也成为守护进程为其他系统和用户(例如数据库和网页)提供“数据”的地方。当然,这些文件也会“随时间变化”,但我同意网站和系统日志之间存在差异。

Debian 仍然默认将数据放在 /var 中,但可能大多数“旧”Linux 都是这样(例如 Redhat),并且大多数文档也假设 /var 用来存放这类东西,虽然我在一些(不太传统的)应用程序的管理指南中看到过 /srv 作为数据目录的例子。

顺便说一下,CentOS 6 有一个 /srv 目录,但它是空的,而 Apache 则默认将 /var/www 作为根目录。有人可能会认为,/srv/logs在您的示例中,应该按照惯例正确放置/var,因为日志不是您的机器提供的东西。

答案2

我的理解是,这/var/www是长期以来的常见做法,也是/srv文件系统标准化工作的一部分。/var/www这是过去的事实上的惯例,我们正处于过渡时期,旧惯例正在逐步被新惯例取代。

对于许多发行版来说,转换的第一步通常是创建/srv符号链接并填充它,例如/srv/www-> /var/www。在未来的某个时候,我希望看到发行版逆转这一情况,此时文件将存在于 -> 之下/srv,符号链接将是/var/www-> /srv/www。在未来,/var/www可能会完全消失。

答案3

您可以查看以下内容

http://www.pathname.com/fhs/pub/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM

我也使用 /srv。不过,这更多的是我这样做的方式,并且更喜欢这样做,而不是为什么这样做。

答案4

当您处理非常大的应用程序(通常在集群内提供数据)时,您可以为 /srv 和 /var 使用不同的后端(RAID,NAS......),同时还有两个额外的好处:

  • /srv(真实数据)和 /var(日志、临时文件……)的备份、复制和快照策略可能不同。

  • 可能对 /var 中的数据的访问是连续的,而对 /srv 的访问则更倾向于随机。您可以将 /srv 放在更快的后端(具有大缓存或 SSD 的 NAS)中,将 /var 放在更便宜的本地磁盘中。

可以将真实数据混合在 /var 中,但这种方式更加清晰且更易于管理。

相关内容