http://blog.youkuaiyun.com/flower_vip/article/details/53034380

本文介绍如何通过Nginx的ngx_http_access_module模块配置IP黑名单和白名单,实现精确控制访问来源。通过示例展示如何在配置文件中设置deny和allow关键字,以及如何导入外部文件进行批量管理。
Nginx的ngx_http_access_module 模块可以封配置内的ip或者ip段 
语法: 
deny IP; (注:分号是必须的) 
拒绝 某个或某段ip访问 例如; deny 127.1.1.1 或 deny 127.1.1.1/24后者为一个ip段


allow IP; 
允许 某个或某段ip访问


那么问题来了我们实际当中是如何使用的呢?下面来具体说一下。 
比如我的Nginx安装目录是在 usr/local/Nginx,那么我们就可以cd到这个目录下然后进入conf文件会看到nginx.conf文件。(conf文件夹下一般会有好多配置文件,就项目而言。)我们需要在这个配置文件下进行配置我们的封IP方法。进入正题 
这里写图片描述
我们使用cat命令查看一下这个nginx.conf会看到有一段代码include ip.black;【加粗斜体】 
user ftp; 
worker_processes 4;


worker_rlimit_nofile 1024; 
events { 
use epoll; 
worker_connections 1024; 
}


http { 
include mime.types; 
default_type application/octet-stream; 
include ip.black; 
log_format yundns_log ‘servernameremote_addr [timelocal]"request” $status


#access_log  logs/access.log  main;


server_tokens off;
sendfile        on;
tcp_nopush     on;
这个被导入进来的ip.black文件就是我们的黑名单也就是要禁止访问的ip地址。那么ip.black文件是如何定义的呢? 
deny 1.1.1.1 ; 
deny 2.2.2.2; 
deny 3.3.3.3; 
。。。。 
这里的ip.black文件里面就是使用了deny这个关键字+ip或ip段来进行配置的,再次声明要加分号!!要不然会报错。 
当然同理我们也可以使用ip.white文件配置我们的白名单 
allow 4.4.4.4; 
….. 
这里我使用了一个文件来定义我的黑名单,并使用include导入到nginx.conf配置文件中当然也可以直接写到nginx.conf配置文件里面。 
当我们配置好后要重新reload一下nginx服务,把我们刚加的配置reload进入。 
/usr/local/nginx/sbin/nginx -s reload 
这样就OK了 分分钟解决禁止IP访问的问题。 
对了当配置好黑名单或白名单后可以使用 
/usr/local/nginx/sbin/nginx -t 
命令来校验语法对不对如果出现: 
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok 
configuration file /usr/local/nginx/conf/nginx.conf test is successful 
那表示正确。 
参考地址:http://outofmemory.cn/code-snippet/3393/nginx-deny-ip-or-deny-network-subnets
"Cannot read properties of undefined (reading 'split')"是一个报错信息,表明在调用split()方法时,属性为undefined,无法执行split()方法。这个报错通常出现在对数据进行分割之前没有对数据进行非空判断的情况下。因此,在调用split()方法之前,需要先对需要分割的数据进行非空判断,以避免出现异常。比如,在处理图片链接的时候,可以先判断链接是否存在,然后再进行分割操作,如下所示: ``` const imgUrl = "https://tu.cloud.cn/flower/flower-size.jpg?size=1800"; if (imgUrl) { const newImgUrl = imgUrl.split('?')[0 + "?size=600"; console.log(newImgUrl); // 输出:https://tu.cloud.cn/flower/flower-size.jpg?size=600 } ``` 这样,当imgUrl不为空时,才会执行分割操作,避免出现报错信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【vue】前端报错:Cannot read properties of undefined (reading ‘split‘)](https://blog.csdn.net/Triumph_light/article/details/123937699)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【报错】 “TypeError: Cannot read properties of undefined (reading ‘split‘)](https://blog.csdn.net/qq_53810245/article/details/125601613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [几个常用的JavaScript字符串处理函数 – split()、join()、substring()和indexOf()](https://download.csdn.net/download/weixin_38747087/13666208)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值