Apache 的多个实例

Apache 的多个实例

我正在运行 VPS,并在 1 个 Apache 实例下为多个网站提供服务。问题是,我正在开发一个 Django 应用程序,这可能需要我重新启动 Apache。运行多个 Apache 实例,每个实例为不同的网站提供服务,这有什么问题吗?这将允许我重新启动一个实例而不影响另一个实例。

除非有人有更好的主意?

谢谢!

编辑 运行更多轻量级的 Web 服务器来处理简单的 HTML 网站是否比 Apache 更好?

答案1

只要您指向不同的日志并绑定到不同的 IP/端口,那就完全没有问题。但显而易见的问题是,为什么您需要重新启动 Apache?

答案2

回答你的第二个问题:是的,nginx 擅长提供静态 HTML 文件,事实上,有些部署使用 nginx 作为反向代理,以便减轻主 Apache 服务器的负担。

答案3

您应该尝试在不重新启动 apache 的情况下使用 Django。大多数服务器端环境在进行开发工作时都可以正常工作,无需反复停止和启动 Web 服务器。

但是,只要您确保第二台服务器的配置文件指向不同的资源,您就可以运行任意数量的 apace 实例。例如:

  • 端口,只要端口不同,就可以使用相同的IP
  • 日志文件,这是一个很大而且不明显的文件。apache 通常不通过 syslog 记录,而是直接打开它的日志文件
  • 可能还有其他一些事情发生冲突,请查看 httpd.conf 中的每个选项

关于提供静态文件。是的,您可以使用更轻量的 Web 服务器来执行此操作。但是,在开始之前,请确保这样做对您有任何好处。Apache 是否真的在其他地方使用您需要的资源?也许只需配置 Apache 以不启动那么多子进程。确保增加的复杂性会得到回报,因为以后当人们试图弄清楚一切是如何运作时,它几乎肯定会让人感到困惑。

答案4

您可以使用“apachectl graceful”(“httpd -k graceful”)刷新 Apache 的配置。

Apache 的文档

正常重启 Apache httpd 守护进程。如果守护进程未运行,则启动它。这与正常重启不同,因为当前打开的连接不会被中止。副作用是旧日志文件不会立即关闭。这意味着如果在日志轮换脚本中使用,可能需要相当长的延迟以确保在处理旧日志文件之前已关闭它们。此命令会在启动重启之前自动检查配置文件(如 configtest 中所示),以确保 Apache 不会死机。这相当于 apachectl -k graceful。

相关内容