Nginx具有一个很好的function,使您可以通过源IP地址来限制对资源的访问。
不过,我注意到,在nginx位于代理或负载均衡器后面的情况下,这可能不起作用。 在我的情况下,亚马逊ELB。
我想为datadog代理和Amazon ELB运行状况检查提供一个状态页面。 所以我想允许ELB的本地连接,但是否认一切。
以下内容不能按预期工作,因为它允许来自ELB之外的stream量也访问状态页面。 原因是因为IP似乎来自ELB,而允许规则不会查看标题来确定请求的真实来源。 有没有办法告诉nginx什么源IP来确定允许/拒绝规则?
location /status { stub_status; access_log off; allow 127.0.0.1; allow 10.0.0.0/16; deny all; }
正如Michael Hampton所指出的那样。 我可以使用真正的IP模块。 我没有意识到这一点。
以下工作。
http { real_ip_header X-Forwarded-For; set_real_ip_from 0.0.0.0/0; }