nginx 在执行 nagios 检查时返回错误 500

nginx 在执行 nagios 检查时返回错误 500

请帮忙解决以下问题。

我正在使用 Nagios 检查 HTTP 并遇到以下错误:

check_http -H 192.0.0.1
HTTP CRITICAL: HTTP/1.1 500 Internal Server Error - 3471 bytes in 0.104 second response time |time=0.103675s;;;0.000000 size=3471B;;;0
Toggle HighlightingOpen in New WindowSelect All

我正在尝试检查我的外部服务器 ( 192.0.0.1) 上是否可以使用 HTTP。在该服务器上,我使用 nginx 作为反向代理和 Apache。nginx 的默认目录是,/usr/share/nginx/www其中包含一个具有 user:user 权限的站点。

nginx 在用户下运行www-data。我尝试将 nagios 用户添加到组中,www-data但没有效果。是什么导致了这个问题?

谢谢您的帮助。

更新

nginx 不会将错误写入 error_log 而是写入 access_log:

172.0.0.1 - - [20/Jan/2012:09:27:23 +0000] "GET / HTTP/1.1" 500 3094 "-" "check_http/v1.4.14 (nagios-plugins 1.4.14)"

172.0.0.1Nagios 服务器 IP 地址在哪里。

更新2

nginx监听80端口:

andrew@office:~$ telnet 192.0.0.1 80
Trying 1.0.0.192...
Connected to 192.0.0.1.
Escape character is '^]'.

更新 3

当我在浏览器中访问时192.0.0.1,日志中出现错误 500:

192.0.1.1 - - [20/Jan/2012:09:30:39 +0000] "GET / HTTP/1.1" 500 3094 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7"
192.0.1.1 - - [20/Jan/2012:09:30:40 +0000] "GET / HTTP/1.1" 500 3094 "http://192.0.0.1/" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7"

192.0.1.1我的 WAN IP 在哪里。

答案1

Nagios 会像每个用户一样尝试访问某个页面。如果无法提供该页面,您将收到 404 错误或页面 201 错误。但是,您收到的是 500 错误,表示内部服务器错误。因此,您的 Nginx 服务器配置不正确,因为当 Nagios 请求该页面时,它无法提供该页面。您收到来自 Nagios 的严重错误,这意味着 Nagios 正在运行,但它发现您的网络服务器存在问题。

问题出在你的 Nginx 服务器上,而不是 Nagios 上。我建议阅读 Nginx 的错误日志。

答案2

感谢大家关注此问题。您帮助我确定了问题所在。我通过添加以下内容解决了此问题:

if ($REMOTE_ADDR = "nagio_server_ip") {
    rewrite .* http://www.example.com last;
}

到我的默认 nginx 主机配置(在location /部分下)。

相关内容