nginx:如何从nginx(不是我的应用程序)中追踪随机500.可能与负载有关?

我们最近有来自nginx本身的大约500个,不知何故没有记录(我们有截图,但在日志中没有任何内容).这本身就很奇怪,因为通常会出现错误.无论如何,我想知道是否有类似连接池大小的东西,如果最大化将导致500?我们已经将其与最近的交通量激增相关联,但这并不是决定性因素.

任何人都有任何想法如何开始处理这样的问题?

我们在nginx和lmon中使用日志格式的组合来捕捉这样的事情. NGINX日志格式如:

log_format main
‘$status:$request_time:$upstream_response_time:$pipe:$body_bytes_sent
$connection $remote_addr $host $remote_user [$time_local] “$request”
“$http_referer” “$http_user_agent” “$http_x_forwarded_for”
$upstream_addr $upstream_cache_status “in: $http_cookie”‘

将捕获许多有用的诊断信息,例如处理请求的上游服务器,以及将状态置于前面,以便即使日志滚动速度非常快也很容易阅读.

我们使用LMON来查看这些日志,然后在日志中看到错误(如500s,503s,400s)时提醒我们(寻呼机/电子邮件):

http://www.bsdconsulting.no/tools/lmon-README

这可以帮助您在发生问题时收到警报,这是调试它的最简单时间.

你应该考虑的另一件事是,如果你还没有,那么默认情况下,nginx认为500是一个致命的条件,而不是尝试另一个上游.如果您有多个上游,可以将其配置为使用另一个上游,如果它获得500,希望模糊用户的失败:

http://wiki.nginx.org/NginxHttpProxyModule#proxy_next_upstream

翻译自:https://serverfault.com/questions/317454/nginx-how-do-i-track-down-a-random-500-from-nginx-not-my-application-potenti

转载注明原文:nginx:如何从nginx(不是我的应用程序)中追踪随机500.可能与负载有关?