我是一名Nginx新手,我需要一些帮助。 =]
我有一个IP列表,包含在" $ proxy_add_x_forwarded_for"其中包含以逗号分隔的IP格式:" IP,下一个IP"。
如果MY IP不在此逗号分隔列表中,我想返回403错误代码。
我认为最简单的方法是做一个简单的if语句:如果$ proxy_add_x_forwarded_for不包含MY IP返回403.
经过多年的尝试,我无法获得任何工作,任何人都可以帮助我吗?听起来这应该很容易。
编辑:此外,我还尝试在位置块中进行设置,因为使用Nginx的其他配置和IP限制仅对此特定块有效。
答案 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。