Nginx配置白名单策略遇到问题

与大部分网文配置的一样, 我把白名单策略配置在 nginx.conf 的 server 段下面. 正常情况下,任何 ip 不在 $http_x_forwarded_for 内的请求都会返回 404. 当我同时又定义了一个 location /template.html 并且希望放开所有对它的访问, 所以我在这个 location 下面使用了 allow all; 语句. 问题出现了,我的希望的效果根本没有生效, 无论我怎样去定义 location /template.html 下面的语句,都会返回 404. 说明处理根本就没有走到 location

server {
    listen 80;
    server_name localhost;
    root /var/html;

    set $ipallow false;
    if ($http_x_forwarded_for ~ "10.2.45.") { set $allow true; }
    if ($http_x_forwarded_for ~ "59.10.28.[25]") { set $allow true; }
    if ($allow = false) { return 404; }

    location /template.html {
        allow all;
    }
}

View Config Code

 

最后只能在 server 下面增加一条 if 判断来达到我想要的效果.

if ($request_uri = "/template.html") { set $allow true; }

View Config Code

原文地址:https://www.cnblogs.com/alpoe/p/9485935.html

时间: 2024-08-30 02:46:03

Nginx配置白名单策略遇到问题的相关文章

nginx配置白名单

配置如下: http模块: http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" &quo

两种方法设置nginx并发限制下面的白名单策略

前言: 今天,公司主站突然出现IDE创建应用没反应的问题,经过预发布环境.非代理环境下面的服务测试,均没有问题,定位问题出现在前端.而我们前端有两层代理,一是青松抗D系统,一是我们自己的nginx代理系统.通过web页面测试发现控制台曝出下面的错误: 503 Service Temporarily Unavailable 那么可以断定的确是nginx这一层出现了问题.想想以前的nginx的配置修改及青松系统的接入,找到如下原因: 1. nginx设置单个IP的访问次数: limit_req_zo

nginx的白名单

为nginx设置白名单的几个步骤: 第一步:指定能访问的白名单 vim /etc/nginx/ip.conf (如果在公司,记得这里是外网IP,要不然测很久都不知道为什么不行) 112.95.211.154 1; 第二步:修改nginx配置 geo $remote_addr $ip_whitelist{ default 0; include ip.conf; } 第三步:为匹配项做白名单设置 location /test { if ( $ip_whitelist = 0 ){ return 40

servlet过滤器配置白名单、黑名单

1.web.xml配置 1 <filter> 2 <description>过滤是否登陆</description> 3 <filter-name>encodingFilter</filter-name> 4 <filter-class>com.stxx.manager.filter.EncodingFilter</filter-class> 5 <init-param> 6 <description&g

nginx限速白名单配置

在<nginx限制连接数ngx_http_limit_conn_module模块>和<nginx限制请求数ngx_http_limit_req_module模块>中会对所有的IP进行限制.在某些情况下,我们不希望对某些IP进行限制,如自己的反代服务器IP,公司IP等等.这就需要白名单,将特定的IP加入到白名单中.下面来看看nginx白名单实现方法,需要结合geo和map指令来实现.geo和map指令使用方法参见下面文章.<nginx geo使用方法>和<nginx

Confluence 6 配置白名单

Confluence 管理员可以通过添加 URLs 到白名单选择出入的链接和使用 RSS 宏,HTML 包含宏和小工具中的内容. 如果一个内容被添加到 Confluence 系统中,但是这个 URLs 不在允许的链接列表中的话,系统将会显示一个错误信息,并提示用户将这个 URL 添加到白名单中. Application links将会自动添加到白名单中.你不需要为这些链接手动进行添加. 注意: HTML Include macro 在默认的情况下是禁用的. 在白名单中允许的 URL 添加 URL

mysql配置白名单

1. 测试是否允许远程连接 $ telnet 192.168.1.8 3306 host 192.168.1.4 is not allowed to connect to this mysql server 2. 允许特定客户端 ip 地址连接 $ mysql -u root -p Enter password: mysql> use mysql mysql> GRANT ALL ON *.* to [email protected]'192.168.1.4' IDENTIFIED BY 'y

PhoneGap 白名单安全机制 navigator.app 加载外部页面返回以及退出介绍

一. Phonegap 白名单安全机制 Phonegap应用的页面大多存在于本地,但有时需要加载外部的Web页面到应用内置的浏览器 视图中已完成特定的应用功能,出于安全性考虑,PhoneGap 设立了白名单安全机制,通过它来 控制能够加载到内置浏览器视图的内容来源. Android 不通过白名单安全机制的话调用外部浏览器 IOS 不通过白名单安全的话 会直接拒绝 二.Android 配置白名单 在res/xml/config.xml这个文件里进行配置 三.IOS 配置 以及 Wp7/wp8配置白

apache rewrite规则白名单示例

如何在apache中使用rewrite规则配置白名单,这里分享一个方法. 今天弄了半天apache 的rewrite 规则,还是没有配置出符合的规则.经同事指点,成功. 需求:六个文件的入口,其他都重定向到index自己的思路:正则找出不是六个文件的URL的模式,进行过滤.对比同事的结果,自己思路的问题:1. 想找出所有不符合规则的,越想越多,无法下手.---------------- 思路错误,应该 制定白名单,2. 概念错误, 弄错 REQUEST_URI 和 REQUEST_STRING