nginx - 如何绕过 nginx 代理的 IPS 列表
问题描述
我有一个带有重定向到保存页面的 Nginx 配置:
location / {
...
if ($setholdingpage = 'True') {
rewrite (^.*$) /holding-page last;
}
proxy_pass $backend;
}
另外,我有一个 IP 列表,这些 IP 应该被列入白名单,而不是重定向到保留页面。怎么可能呢?
解决方案
您可以使用 Nginx geo 模块根据客户端 IP 地址创建变量,您可以指定单独的 IP 地址或 CIDR 范围:
geo $bypassip {
default 0;
64.233.160.0/19 1;
66.102.0.0/20 1;
}
如果 IP 与列表中的一个匹配,则覆盖您的变量:
if ($bypassip = 1){
set $setholdingpage False;
}
我使用类似的设置来阻止某些地理区域,但仍然允许 Google 爬虫访问我的网站。
推荐阅读
- amazon-web-services - 如何获取具有特定标签的所有 AWS EC2 实例及其 CPU 和 RAM 利用率的列表
- python - 如何修复“'TypeError: datetime.time' 对象不可下标”
- xaml - xamarin 形式的背景
- python - tf.data.experimental.group_by_window() 如何在 Tensorflow 2.0 中运行
- c# - 如何使用 ASP.NET MVC 在 Ajax.BeginForm 中将操作设置为外部 URL
- android - Android Studio 导航编辑器在片段上显示“模糊类型”
- uber-api - 如何获得对超级范围(Scope.PROFILE、Scope.ALL_TRIPS、Scope.RIDE_WIDGETS)的完全访问权限?
- r - 在R中的浮点数和整数之间进行乘积时丢失浮点数
- javascript - 两级过滤器 OR/AND
- node.js - Sequelize:查询是否包含父模型的数据,如果它有关联的子模型;不返回子模型的数据