apache2 没有 conf 文件可以工作吗?

apache2 没有 conf 文件可以工作吗?

碰巧的是,apache2 conf 文件包含带有密码和其他有价值数据的环境变量。启动 apache2 后,我删除了我的 conf 文件。我知道重新启动时我必须再次创建这些文件。

apache2 能按预期继续工作多久(显示我的网站)?apache2 启动后会读取 conf 文件吗?

我之所以问这个问题,是因为我没有重启服务器,但它们却显示了 apache ubuntu 默认页面

ps -aux |删除 Apache

www-data 27019  0.0  0.0 424372 12780 ?        S    15:52   0:00 /usr/sbin/apache2 -k start
www-data 27963  0.0  0.0 424372 12800 ?        S    16:46   0:00 /usr/sbin/apache2 -k start
www-data 27964  0.0  0.0 423968 12500 ?        S    16:46   0:00 /usr/sbin/apache2 -k start
www-data 28159  0.0  0.0 423968 12424 ?        S    16:59   0:00 /usr/sbin/apache2 -k start
www-data 28607  0.0  0.0 423968 11044 ?        S    17:19   0:00 /usr/sbin/apache2 -k start
ubuntu   28688  0.0  0.0  12948   956 pts/0    R+   17:23   0:00 grep --color=auto apache
root     28766  0.0  0.2 423888 34928 ?        Ss    2018  06:14 /usr/sbin/apache2 -k start

UPD:我知道这是删除配置文件的错误方法。

答案1

正如 @djsmiley2k 所说,如果配置文件在启动时存在,Apache 将继续在没有配置文件的情况下运行。不,这不是一个好的解决方案,正如他所说,您也知道。

尽管如此,在回答 apache2 是否会工作或者不……我会说““。

大多数系统会因为各种原因自动重启 Apache 和/或重新加载 Apache 配置。例如,Apache 通常在日志文件轮换时重启。许多此类自动化任务对于基于 Apache 的 Web 服务器的正常运行必不可少。您还必须自动重新创建配置文件……这意味着您必须将密码存储在其他地方,此时您就失去了删除配置文件的目的。

此外,还会发生意外重启……例如当 apache2 崩溃时。Apache 虽然很稳定,但并非万无一失。标准操作程序是采用某种方法来监视 Apache 进程,并在其挂起或崩溃时自动重新启动它。许多现代系统都使用 systemd 来实现这一点。同样,您可以将配置文件的自动重建添加到重启过程中……但这样做仍然违背了删除配置文件的初衷。

真正的解决方案是保护您的敏感数据。环境变量应由您用来管理 Apache 进程的任何工具设置。例如 Systemd提供 工具为此。密码用于本地认证应该加密并存储在仅可由运行 Apache 的用户读取/写入的文件中(即root),尤其是不能以它读取文件的形式(即www-data)。

如果您有用于远程身份验证的密码(即从您的 Web 服务器到另一台服务器或服务的身份验证……例如数据库),那么您应该考虑用预共享的公钥/私钥替换它们,例如用于 ssh 身份验证的密码……更不用说远程服务器之间的加密(认真的说,ssh 隧道,好东西)……同样,存储在只有启动 Apache 的特权用户才能访问的文件中。而且,老实说,Apache 本身不应该处理对另一项服务的身份验证任务……

答案2

一旦 apache 启动,就删除这些文件,它会继续运行,直到需要再次读取这些文件(例如,如果你重新启动了守护进程)。

这似乎是一个X->Y问题,你并没有真正陈述你的问题,只是问了一个你认为可以解决的问题。然而,这不是一个明智的解决方案。

答案3

虽然我同意不要将关键数据直接存储在 Apache conf 文件中,但这里有一个不同的想法。绝对不是任何类型的密码。

您可以在 conf.d 文件夹中创建自己的 *.conf 文件。Apache 仍会加载它们。

然后将所有有价值的数据迁移到新的 .conf 文件。现在您只需删除并重新建立 1 个文件。

因此 apache 仍会有一些可用的配置数据,而不是以空白的 apache 安装启动。显然 documentRoot 文件夹是最重要的。

相关内容