2012-03-25 41 views
1

我想从远程计算机获取nginx的统计信息。我在nginx配置中添加了远程机器的ip地址,但是当我在远程机器上运行curl时,我被禁止了。我如何resovle?我重新加载了配置。试图从远程计算机获取nginx状态

 location /nginx_status { 
      stub_status on; 
      access_log off; 
      allow 127.0.0.1; 
      allow xxx.xxx.xxx.xxx; 
      deny all; 
     } 


curl http://mysite/nginx_status 
<html> 
<head><title>403 Forbidden</title></head> 
<body bgcolor="white"> 
<center><h1>403 Forbidden</h1></center> 
<hr><center>nginx/1.0.13</center> 
</body> 
</html> 
+0

你得到解决?我有同样的问题。这个'ec2metadata --local-ipv4'在我的系统上不可用。 – Luv33preet 2017-03-22 21:00:56

回答

0

你确定远程机器真的拥有你写入配置的IP吗?它是什么IP地址?你可以在NAT或stgg之后...

同时检查Nginx的错误日志,你应该有一些有用的信息在那里...(我希望我记得它正确地写在那里。无论如何,为什么访问日志关闭?至少为了调试你可以使用它...)

+0

是的..是正确的IP。 – Tampa 2012-03-25 08:17:10

+0

2012/03/25 08:15:45 [错误] 649#0:* 2000规则访问被禁止,客户端:xxx.xxx.xxx.xxx,服务器:127.0.0.1,请求:“GET/nginx_status HTTP/1.1 “,主持人:”xxxxxxxxx-1.compute.amazonaws.com“ – Tampa 2012-03-25 08:17:36

+0

以上是我在访问时获得的信息 – Tampa 2012-03-25 08:18:17

0

亚马逊在内部解决IP的不同。您应该使用内部IP而不是public-ipv4地址。

登录到服务器并运行此:

ec2metadata --local-ipv4

[email protected]:~$ ec2metadata --local-ipv4 
10.244.231.180 

提供您的情况是相同的区域内,你应该使用这个IP地址。

location /nginx_status { 
     stub_status on; 
     access_log off; 
     allow 127.0.0.1; 
     allow 10.244.231.180; 
     deny all; 
    } 

你也可以使用

allow 10.0.0.0/8;(虽然它是未经测试)