我正在尝试从远程计算机获取nginx的统计信息。我在nginx配置中添加了远程机器的ip地址,但是当我在远程机器上运行curl时,我被禁止了。如何重新开始?我重新加载了配置。
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 :(得分:0)
您确定远程计算机确实具有您在配置中写入的IP吗?它是什么IP地址?你可以在NAT或sthg ......后面......
同时检查Nginx的错误日志,你应该在那里找到一些有用的信息......(我希望我能正确记得它是在那里写的。无论如何,为什么访问注销?至少对于调试你可以使用它。 ..)
答案 1 :(得分:0)
亚马逊在内部解决了IP的不同问题。您应该使用内部IP而不是public-ipv4地址。
登录您的服务器并运行:
ec2metadata --local-ipv4
ubuntu@ip-10-244-231-180:~$ 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;
(虽然未经测试)
答案 2 :(得分:0)
我也面临同样的问题,我无法在远程机器上获得nginx服务器状态。
相反,我在网络浏览器中收到403禁止错误。
我在“nginx.conf”文件中进行了一些修改,该文件位于此路径“/ usr / local / nginx_fstack / conf”中。所以事情对我很有用。
以前nginx.conf文件就像这样
http {
...
server {
...
location / {
root html;
index index.html index.htm;
}
location /nginx_status {
stub_status on;
access_log off;
allow xx.xx.xx.xx/24;
deny all;
}
...
}
}
我这样编辑了
http {
...
server {
location /nginx_status {
stub_status on;
access_log off;
allow xx.xx.xx.xx/24;
deny all;
}
...
}
}
稍后从浏览器“xx.xx.xx.xx / nginx_status”获得如下所示的正确状态:
Active connections: 54
server accepts handled requests
12594 12594 12543
Reading: 0 Writing: 1 Waiting: 53
对我来说效果很好: - )