如何使用nginx和/或Apache缓慢启动


How I do slow start with nginx and/or Apache?

我有一台服务器,nginx作为前端负载均衡器,Apache和mod_php作为后端应用服务器。

在高峰时段,如果我在重新启动后立即按原样重新启动apache,它将在当前负载下失效,因为还没有准备好缓存。

我在想,也许有办法以某种方式缓慢起步?也就是说,根据服务正常运行时间来限制连接数量,比如"在1秒之前不允许超过10个连接"之类的。

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

就我个人而言,我不会依赖用户预热缓存,我更喜欢:

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

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

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

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

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

我认为nginx必须有一个配置或方法来实现一个脚本,等待60秒,因为一个节点被检测到在线(活动),然后才认为它(可用)。