Nginx - 如何阻止除一个IP之外的所有IP

时间:2016-07-04 12:13:29

标签: nginx configuration server

我是一名Nginx新手,我需要一些帮助。 =]

我有一个IP列表,包含在" $ proxy_add_x_forwarded_for"其中包含以逗号分隔的IP格式:" IP,下一个IP"。

如果MY IP不在此逗号分隔列表中,我想返回403错误代码。

我认为最简单的方法是做一个简单的if语句:如果$ proxy_add_x_forwarded_for不包含MY IP返回403.

经过多年的尝试,我无法获得任何工作,任何人都可以帮助我吗?听起来这应该很容易。

编辑:此外,我还尝试在位置块中进行设置,因为使用Nginx的其他配置和IP限制仅对此特定块有效。

1 个答案:

答案 0 :(得分:1)

假设您的IP地址为123.123.123.123,如果您的IP地址,则以下语句将返回403:

if ($proxy_add_x_forwarded_for !~ \b123\.123\.123\.123\b) { return 403; }

它使用\b元字符强制执行字边界(包括数字),以便测试完整的IP地址。

如果需要缩小范围,可以将表达式放在位置块中。

if指令是documented here。有关使用if指令的信息,请参阅this caution。正则表达式的有用资源是here

相关问题