0

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

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

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

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

4

2 回答 2

2

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

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

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

3/ 一旦加热退出维护模式。

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

于 2012-07-25T18:33:55.773 回答
0

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

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

于 2012-07-25T18:34:06.953 回答