Answers:
我们在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 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
error_log
。同时发布您的配置文件。