配置 Apache 仅在重启后识别对 htdocs 的更改

配置 Apache 仅在重启后识别对 htdocs 的更改

我想要 Apache要求重新启动以便它识别 htdocs 的任何更改。

这可能吗?

答案1

你说的“htdocs”是指你网站的所有内容吗?如果是这样,那么答案是“可能”,通过使用 mod_cache+mod_disk_cache。你需要运行某种蜘蛛程序来抓取你所有的页面,这样 Apache 就可以将它们全部加载到缓存中,为数百万秒后的所有页面配置到期日期,并打开 apache 警告的几乎所有选项,因为这些选项会提供“过时”的页面。不过,这并不是一个完美的想法……如果蜘蛛程序错过了任何文件,或者你向 htdocs 目录添加了新文件,那么如果人们能够找出 URL,他们就能够看到它们(并将它们添加到缓存中供其他人使用)。你也许能够弄清楚如何使用此处的安全警告允许所有人访问缓存但不允许访问实际站点对您有利,但我怀疑其他人会认为尝试这样做是“错误”而不是“功能”。当您想要更新站点时,您必须删除所有缓存文件并重新抓取站点。

不知道您要做什么,我只能猜测更好的想法。如果您只是对网站进行更改,并且不希望任何人在完成之前看到它们,那么您应该做的是将网站副本放在两个不同的目录中。Apache 配置应将一个目录指向为 DocumentRoot,而您在另一个目录中进行更改。完成更改后,您可以编辑 Apache 配置,将 DocumentRoot 指向另一个目录并重新启动 Apache,这样新网站就可以上线了。

答案2

我没有看到任何现成的解决方案。

但是我的想法是这样的:

你设置服务器,使 DocumentRoot 和 FTP 目录不同。然后你编写一个脚本,将位于 FTP 目录中的所有文件复制到 DocumentRoot 目录中。

您可以使用 rsync 轻松完成此操作。

您甚至可以将此脚本插入到 /etc/init.d/apache2 文件中。这样,当您重新启动或重新加载服务(使用service apache2 restart|reload)时,DocumentRoot 目录中的所有文件都会更新。

相关内容