每当出现 502 错误时,如何使 make nginx 运行 成为脚本
How to make make nginx run a script whenever there's a 502 error
这就是我正在尝试做的事情。每当 nginx returns 502 时,我们希望它向我们的仪表板发送一条消息,其中包含返回 502 的 url 路径。
然后在我们的仪表板中,我们将按降序显示返回 502 的 url 及其各自的计数
示例:
+--------------+-------+
| url | count |
+--------------+-------+
| /foo/bar | 45 |
| /foo/bar/123 | 23 |
| /foo/bar/baz | 12 |
+--------------+-------+
我假设这可以通过 nginx 指令实现,并且只是想知道如何去做。
我也很关心如何处理超载假设我们的服务器出于合法原因超载,这会导致 502 错误激增,我们的仪表板也会出现流量激增。
以下评论,虽然它仍然是日志监控解决方案,但我认为它可能会减轻您对开销的担忧。仍然可能有另一个答案。
主要思想 - 创建一个单独的日志,您将只记录 502 个错误并对此做出反应。
首先,将502错误切换到自己所在的位置。然后为此错误创建位置块(它必须有效)。最后,将其通过管道传输到自己的日志中:
error_page 502 /502.html;
location = /502.html {
root /var/www/html;
access_log /var/log/nginx/502_error.log main;
}
这样你只会在这个特殊的日志文件中得到 502s,因此相对于完整的日志监控来说开销会很低。您还需要尝试使用日志格式来正确表示初始页面。
此外,如果使用代理(我想你会这样做),请确保你有
proxy_intercept_errors on;
为了这个工作。
希望这有帮助,但也许有人有更好的解决方案而不使用日志。
这就是我正在尝试做的事情。每当 nginx returns 502 时,我们希望它向我们的仪表板发送一条消息,其中包含返回 502 的 url 路径。
然后在我们的仪表板中,我们将按降序显示返回 502 的 url 及其各自的计数
示例:
+--------------+-------+
| url | count |
+--------------+-------+
| /foo/bar | 45 |
| /foo/bar/123 | 23 |
| /foo/bar/baz | 12 |
+--------------+-------+
我假设这可以通过 nginx 指令实现,并且只是想知道如何去做。
我也很关心如何处理超载假设我们的服务器出于合法原因超载,这会导致 502 错误激增,我们的仪表板也会出现流量激增。
以下评论,虽然它仍然是日志监控解决方案,但我认为它可能会减轻您对开销的担忧。仍然可能有另一个答案。
主要思想 - 创建一个单独的日志,您将只记录 502 个错误并对此做出反应。
首先,将502错误切换到自己所在的位置。然后为此错误创建位置块(它必须有效)。最后,将其通过管道传输到自己的日志中:
error_page 502 /502.html;
location = /502.html {
root /var/www/html;
access_log /var/log/nginx/502_error.log main;
}
这样你只会在这个特殊的日志文件中得到 502s,因此相对于完整的日志监控来说开销会很低。您还需要尝试使用日志格式来正确表示初始页面。
此外,如果使用代理(我想你会这样做),请确保你有
proxy_intercept_errors on;
为了这个工作。
希望这有帮助,但也许有人有更好的解决方案而不使用日志。