【问题标题】:How I do slow start with nginx and/or Apache?我如何缓慢启动 nginx 和/或 Apache?
【发布时间】:2012-07-24 06:24:44
【问题描述】:

我有一个服务器,其中 nginx 用作前端负载平衡器,Apache 使用 mod_php 作为后端的应用程序服务器。

在高峰时段,如果我在重启后立即重启 apache,它将在当前负载下死掉,因为还没有缓存。

我在想可能有办法以某种方式缓慢启动? IE。根据服务正常运行时间或其他内容限制连接数,例如“在 1 秒前允许不超过 10 个连接”或类似的内容。

使用 iptables 的更多低级方法也适用于我,只是不知道在哪里寻找它。

【问题讨论】:

  • 你应该考虑使用 nginx 缓存。当你已经拥有 nginx 时使用 apache 兑现并不是一个好主意,在你绝对知道你需要它完全像那样工作之前。

标签: php apache caching nginx iptables


【解决方案1】:

我个人不会依赖用户加热缓存,我更愿意:

1/ 将 Nginx 置于“维护模式”并使其临时代理到 HTML 文件(快速)

2/ 在 8080(或其他)端口上使用 wget 自己预热缓存(或者如果可能,最好使用 cli PHP 脚本,但并非总是如此)

3/ 加热后退出维护模式。

当我提到维护模式时,我不知道 nginx 必须启用此开关,但您可以使用 bash 脚本来更改配置以打开/关闭它。

【讨论】:

    【解决方案2】:

    重新加载,但请不要重新启动 Apache。你很幸运,你有 nginx 来平滑峰值,和/或在 Apache 关闭时返回错误页面,但它不允许你以你喜欢的方式使用 HTTP 服务。在环境生产中,至少在我的工作中,这会让我被解雇。

    我相信 nginx 必须有一个配置或一种方法来实现一个脚本,以等待 60 秒,因为在将其视为(可用)之前检测到一个节点在线(活动)。

    【讨论】:

      猜你喜欢
      • 2011-03-28
      • 2016-05-12
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      相关资源
      最近更新 更多