我正在试图让我的Web服务器更易于pipe理,备份和复制。 我有网站,configuration文件,SSL证书,虚拟主机分散在各地。 他们都应该在一个地方似乎是合乎逻辑的。 我正在考虑像这样在根目录下创build一个目录
/data
里面有这个networking服务器上的数据的所有目录如下所示:
/data /websites [websites directories] /ssl_certs [secure certificates for sites] /vhosts [virtual host files for sites] /config [Software config files (apache, mod_security etc.) /apache2 [Apache Server Config files] /proftpd [FTP Server Config files] /utilities [Misc Bash Scripts]
这将意味着如果我不得不复制这个服务器,我可以安装和configuration所需的软件包,然后复制这个文件夹将包含我的所有数据。 此外,我可以轻松快速地备份我的服务器上的一切,所以在需要恢复的情况下,我将所有的数据放在一个地方。
所以我有3个问题:
这是一个好主意,还是比它的价值更麻烦?
这样做会有什么安全隐患吗?
如果上述不可行的话,这样做的标准方式是什么?
不同的网站做不同的事情; 如果你有一个备份系统和完全logging的灾难恢复计划,并且你的configuration文件已经正确设置,那么你放置这些文件的位置并不重要。
“标准”……有很多这样的名字是一个愚蠢的名字。 有典型的网站,但即使是不同的发行版和networking服务器。
最后,如果你有适当的logging和备份,这应该不成问题。 做什么最适合您的业务/工作stream程,不要担心。
我有这样的东西:
通常configuration在/ etc / appname中(因此证书位于/ etc / nginx / certs /中,密码是/ etc / nginx / passwords,单独的vhostconfiguration位于/ etc / nginx / sites /等中)。 这不被认为是混乱或'全地'; 一切都在/ etc / nginx / dir中。
这些网站的内容通常进入/ var / www / site1,/ var / www / site2,但是这是在每个网站的基础上configuration的,不需要遵守这个约定。 (如果你select的话,每个站点都可能处在一个完全不同的地方,只要httpd可以访问)。
注意:我通常使用nginx,但是apache的config目录应该是/ etc / apache2 /。 同样的情绪适用。
注意:使用/ etc / apache2 / sites-enabled /和sites-available /是另外一个常见的约定,但我个人不喜欢这种方法。
与其他受访者不同,我认为没有使用默认文件布局是一个很好的例子 – 就像没有使用默认权限模型有很好的理由一样。
我和你提出的问题是,你已经调用目录“数据” – 我想保持所有的configuration和SSL证书与内容分开。 而且由于默认的configuration大多是/ etc,这似乎是离开它的合乎逻辑的地方。
你可能遇到问题的地方是你添加软件包的地方,例如添加apache模块。 目录软链接的智能使用可以帮助解决这个问题。