在做nagios检查时,nginx返回错误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 

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

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

感谢您的帮助。

UPDATE

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。

Nagios会做每个用户所做的,它会尝试访问某个页面。 如果这个页面不能被提供,你会得到一个404错误,或者你得到一个201的页面。 但是,您正在收到500错误,这意味着内部服务器错误。 所以Nginx服务器configuration不好,因为Nagios请求它时无法服务页面。 你从Nagios得到一个严重错误,这意味着Nagios正在工作,但它看到你的networking服务器有问题。

问题在于你的Nginx服务器而不是Nagios。 我build议阅读Nginx的错误日志。

谢谢大家看这个。 你帮助确定了这个问题。 我已经解决了这个问题,join:

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

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