请帮忙解决以下问题。
我正在使用 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.1
Nagios 服务器 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 /
部分下)。