我想尝试让我的 Web 服务器更易于管理、备份和复制。我的网站、配置文件、 SSL 证书、虚拟主机分散在各处。将它们全部放在一个地方似乎合乎逻辑。我考虑在根目录中创建一个目录,如下所示
/data
其中包含此 Web 服务器上我的数据的所有目录,如下所示:
/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]
这意味着如果我必须复制此服务器,我可以安装和配置所需的包,然后复制包含我所有数据的文件夹。此外,我可以轻松快速地备份服务器上的所有内容,以便在需要恢复时,我可以将所有数据放在一个地方。
所以我有 3 个问题:
这是一个好主意吗?或者它会带来比其价值更多的麻烦?
这样做会有什么安全隐患吗?
如果上述方法不可行,那么标准方法是什么?
答案1
不同的站点做不同的事情;如果您有一个备份系统和详尽记录的灾难恢复计划,并且您的配置文件已正确设置,那么放置文件的位置就无关紧要了。
“标准”……有太多了,这个名字太蠢了。典型的但即使如此,也因发行版和网络服务器而异。
最后,如果您已妥善记录并备份,这应该不是问题。做最适合您的业务/工作流程的事情,不要担心。
答案2
我有类似的东西:
- /ETC/
- 阿帕奇2/
- 站点可用/
- 已启用站点/
- SSL/
- *.crt
- 私人的/
- *。钥匙
- 阿帕奇2/
- /srv/
- 万维网/
- $站点/
- htdocs/
- 日志/
- cgi-bin/
- $站点/
- 万维网/
答案3
通常配置位于 /etc/appname 中(因此证书位于 /etc/nginx/certs/ 中,密码位于 /etc/nginx/passwords 中,各个 vhost 配置位于 /etc/nginx/sites/ 中,等等)。这并不算混乱或“到处都是”;所有内容都在 /etc/nginx/ 目录中。
网站内容通常存放在 /var/www/site1、/var/www/site2 中,但这是根据每个网站进行配置的,不需要遵守此约定。(如果您愿意,每个网站可以位于完全不同的位置,只要 httpd 有访问权限即可。)
注意:我通常使用 nginx,但 apache 的配置目录应该是 /etc/apache2/。同样适用。
注意:使用 /etc/apache2/sites-enabled/ 和 sites-available/ 是另一种常见惯例,但我个人不喜欢这种方法。
答案4
与其他受访者不同,我认为有充分的理由不使用默认文件布局 - 就像有很好的理由不使用默认权限模型一样。
我对于您提议的问题是,您将目录命名为“数据” - 我希望将所有配置和 SSL 证书与内容完全分开。而且由于默认配置大部分都是 /etc,因此将其保留在那里似乎是合乎逻辑的。
您可能会遇到问题的地方是添加会更改配置的包(例如添加 apache 模块)。智能使用目录软链接可以帮助解决这个问题。