nginx访问控制:如何通过map来控制http_x_forwarded_for访问限制

通过map修改访问限制

目前,仓库通过allow host的方式来控制访问,但实际上没有启到作用,请求从lb过来,host已经变化,所以需要用http_x_forwarded_for来做限制。

允许访问ip

 19.29.55.15 13.56.217.135 211.22.42.100 119.9.14.149*其他都403*

影响范围:

 不升级的情况下不影响

实现方法:

 1、map(用于http段)
 2、location if else来判断(server)

map:

 map $http_x_forwarded_for $access 
 {
 default false;
 123.56.27.15    true;
 123.103.7.29    true; 
 101.21.57.187  true;
 221.12.42.100  true; 
 116.7.37.5  true; 
 10.150.189.186  true; 
 41.29.245.18   true; 
 }if ( $access = ‘false‘) 
 {
 return 403;
 }

location:


set $access false;
if ( $http_x_forwarded_for = ‘123.56.27.135‘ )  {
    set $access true;
 }
 if ( $http_x_forwarded_for = ‘119.29.144.149‘ )  {
    set $access true;
 }
 if ( $http_x_forwarded_for = ‘119.29.55.135‘ )  {
    set $access true;
 }

 if ( $http_x_forwarded_for = ‘221.122.42.100‘ )  {
    set $access true;
 }
 if ( $access = ‘false‘) {
    return 403;
}
时间: 2024-08-05 09:37:43

nginx访问控制:如何通过map来控制http_x_forwarded_for访问限制的相关文章

nginx访问控制、rewrite应用、代理设置

 nginx访问控制.rewrite应用.代理设置 一.访问控制 在这里依然还是以default2.conf虚拟主机为例,配置文件位置default2.conf 1.允许某个ip访问 ,需要在default2.conf配置配文件中添加,具体如下图: 规则如下: allow 127.0.0.1; allow 192.168.21.97; deny all; 只允许127.0.0.1和192.168.21.97来访问,其他的全部拒绝 退出保存 1)检查配置文件 2)重置配置文件 3)测试 允许ip测

nginx访问控制、rewrite应用

nginx访问控制.rewrite应用 一.访问控制 在这里依然还是以default2.conf虚拟主机为例,配置文件位置default2.conf 1.允许某个ip访问 ,需要在default2.conf配置配文件中添加,具体如下图: 规则如下: allow 127.0.0.1; allow 192.168.21.97; deny all; 只允许127.0.0.1和192.168.21.97来访问,其他的全部拒绝 退出保存 1)检查配置文件 2)重置配置文件 3)测试 允许ip测试 [[em

LNMP(3) 静态文件不记录日志和过期时间、Nginx防盗链、Nginx访问控制、解析php

                    静态文件不记录日志和过期时间 进入到虚拟主机配置文件 cd /usr/local/nginx/conf/vhost  编辑虚拟主机配置文件:vim test.com.conf  添加内容:   配置如下 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires      7d;    //过期时间 access_log off; } location ~ .*\.(js|css)$ { expires    

The server of Nginx(二)——Nginx访问控制和虚拟主机

一.Nginx访问控制 (1)基于授权的访问控制 Nginx于Apache一样,可以实现基于用户授权的访问控制,当客户端要访问相应网站或者目录时要求输入用户名密码才能正常访问,配置步骤与Apache基本一致 第一步:生成用户密码认证文件,使用htpasswd生成用户认证文件,如果没有该命令,可使用yum安装httpd-tools软件包,用法与之前讲解Apache认证时一样 ~]#htpasswd -c /usr/local/nginx/passwd.db test #回车后会让输入两次密码 修改

Nginx 访问控制&屏蔽指定 user_agent

禁止非法恶意访问的IP [[email protected] ~]# vim /usr/local/nginx/conf/vhosts/linux.conf location ~ .*admin\.php$ { allow 127.0.0.1; deny all; #auth_basic "auth"; #auth_basic_user_file /usr/local/nginx/conf/.htpasswd; include fastcgi_params; fastcgi_pass

nginx访问控制 if多条件判断

网站才用的是wordpress,之前被黑了,login.php被暴力破解,为了增加安全性,现在经理让我做一个访问控制,只能有一个ip能访问login.php.如果单纯跑一个apache问题很容易解决加两行rewrite就能搞定,现在的问题是服务器上跑了好几个web,nginx做的分发:nginx  rewrite多条件判断找了半天也没有找到,最后终于找到了,是利用set添加变量,再利用if语句. 目的:只允许一个IP访问/login.php或是/wp-admin; location / { se

nginx访问控制配置

限制只让某个ip访问 allow          219.232.244.234; deny           all; 禁止某个IP或者IP段访问站点的设置方法 首先建立下面的配置文件放在nginx的conf目录下面,命名为deny.ip cat  deny.ip deny 192.168.1.11; deny 192.168.1.123; deny 10.0.1.0/24; 在nginx的配置文件nginx.conf中加入:include deny.ip; 重启一下nginx的服务:/u

Yarn下Map数控制

public List<InputSplit> getSplits(JobContext job) throws IOException { long minSize = Math.max(getFormatMinSplitSize(), getMinSplitSize(job)); long maxSize = getMaxSplitSize(job); List splits = new ArrayList(); List files = listStatus(job); for (Fil

Nginx防盗链、Nginx访问控制、Nginx解析php相关配置、Nginx代理

Nginx防盗链 1.[[email protected] test.com]# vi /usr/local/nginx/conf/vhost/test.com.conf #+表示1或者多个,+前面的字符 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names  *.test.com ; #定