我有一台服务器,其中 nginx 用作前端负载均衡器,Apache 与 mod_php 作为后端的应用程序服务器。
在高峰时段,如果我在重新启动后立即重新启动 apache,它将在当前负载下死亡,因为还没有缓存。
我在想可能有一种方法可以以某种方式缓慢启动?即根据服务正常运行时间或其他东西限制连接数,例如“允许不超过 1 秒前的 10 个连接”或类似的东西。
使用 iptables 的更多低级方法也适用于我,只是不知道在哪里寻找它。
就我个人而言,我不会依赖用户加热缓存,我更愿意:
1/ 将 Nginx 置于“维护模式”并使其临时代理到 HTML 文件(快速)
2/ 在 8080(或其他)端口上使用 wget 自己预热缓存(或者如果可能的话最好使用 cli PHP 脚本,但并非总是如此)
3/ 一旦加热退出维护模式。
Ps 当我提到维护模式时,我不知道 nginx 必须启用此开关,但您可以使用 bash 脚本来更改配置以打开/关闭它。
重新加载,但请不要重新启动 Apache。你很幸运,你有 nginx 来平滑峰值,和/或在 Apache 关闭时返回错误页面,但它不允许你以你喜欢的方式使用 HTTP 服务。在环境生产中,至少在我的工作中,这会让我被解雇。
我相信 nginx 必须有一个配置或一种方法来实现一个脚本,以等待 60 秒,因为在将其视为(可用)之前在线检测到节点(活动)。