如何在不重新启动 Apache 网络服务器的情况下配置 VirtualHost?

如何在不重新启动 Apache 网络服务器的情况下配置 VirtualHost?

我在这里提到了 apache 网络服务器,因为我正在使用它。

答案1

我刚刚看了这个页面,但不确定它与您的页面有多大关系。

动态配置的海量虚拟主机

基本思想是将所有静态配置替换为动态配置机制。这有许多优点:

  1. 您的配置文件更小,因此 Apache 启动更快并且占用更少的内存。
  2. 添加虚拟主机只需在文件系统中创建适当的目录并在 DNS 中创建条目即可 -您不需要重新配置或者重新启动 Apache。

更新

无需重新启动 Apache 即可添加虚拟主机

事实证明,解决方案是使用 VirtualDocumentRoot,而不是仅使用单个虚拟主机的普通旧 DocumentRoot 设置。这允许将 $0 变量指定为值的一部分。因此,我们最终能够获得“VirtualDocumentRoot /somedir/$1”。

答案2

对你的 VirtualHosts 进行任何更改,然后执行

apache2ctl configtest

为了确保没有任何未解决的语法错误,请运行以下命令:

apache2ctl graceful

或者

/etc/init.d/apache2 graceful

USR1 或优雅信号会导致父进程建议子进程在当前请求之后退出(如果子进程没有提供任何服务,则立即退出)。父进程重新读取其配置文件并重新打开其日志文件。当每个子进程死亡时,父进程会用新一代配置中的子进程替换它,该子进程会立即开始处理新请求。

基本上任何现有的连接都保持不变,所以它与完全重启不同 - 这是我通常在具有数十个站点的生产服务器上执行此操作的方式。

相关内容