nginx如何设置目录白名单和ip白名单
发布时间 - 2023-05-18 00:00:00 点击率:次1.设置目录白
名单:对指定请求路径不设置限制,如对请求路径为api目录下的请求不做限制,则可写为
server{
location /app {
proxy_pass http://192.168.1.111:8095/app;
limit_conn conn 20;
limit_rate 500k;
limit_req zone=foo burst=5 nodelay;
}
location /app/api {
proxy_pass http://192.168.1.111:8095/app/api
}
}
# 因nginx会优先进行精准匹配,所以以上写法即接触了对api目录下属路径的限制2.设置ip白名单,需用到nginx geo 与 nginx map
在没有人为删除的情况下(--without-http_geo_module或--without-http_map_module),nginx默认加载了ngx-http-geo-module和ngx-http-map-module相关内容;
ngx-http-geo-module可以用来创建变量,变量值依赖于客户端 ip 地址;
ngx-http-map-module可以基于其他变量及变量值进行变量创建,其允许分类,或者映射多个变量到不同值并存储在一个变量中;
nginx geo 格式说明
syntax ( 语法格式 ): geo [$address] $variable { ... }
default ( 默认 ): -
content ( 配置段位 ): http
nginx map 格式说明
syntax ( 语法格式 ): map string $variable { ... }
default ( 默认 ):-
content ( 配置段位 ): http
白名单配置示例
http{
# ... 其他配置内容
#定义白名单ip列表变量
geo $whiteiplist {
default 1 ;
127.0.0.1/32 0;
64.223.160.0/19 0;
}
#使用map指令映射将白名单列表中客户端请求ip为空串
map $whiteiplist $limit{
1 $binary_remote_addr ;
0 "";
}
#配置请求限制内容
limit_conn_zone $limit zone=conn:10m;
limit_req_zone $limit zone=allips:10m rate=20r/s;
server{
location /yourapplicationname {
proxy_pass http://192.168.1.111:8095/app;
limit_conn conn 50;
limit_rate 500k;
limit_req zone=allips burst=5 nodelay;
}
}
}
白名单配置可用于对合作客户,搜索引擎等请求过滤限制
#(特殊情况处理)
#如果想仅限制指定的请求,如:只限制post请求,则:
http{
# 其他请求..
#请求地址map映射
map $request_method $limit {
default "";
post $binary_remote_addr;
}
#限制定义
limit_req_zone $limit zone=reqlimit:20m rate=10r/s;
server{
... #与普通限制一致
}
}
#在此基础上,想进行指定方法的白名单限制处理,则:
http{
#...
#定义白名单列表
map $whiteiplist $limitips{
1 $binary_remote_addr;
0 "";
}
#基于白名单列表,定义指定方法请求限制
map $request_method $limit {
default "";
# post $binary_remote_addr;
post $limitips;
}
#对请求进行引用
limit_req_zone $limit zone=reqlimit:20m rate=10r/s;
#在server中进行引用
server{
#... 与普通限制相同
}
}
# nginx
# 客户端
# 变量值
# 相关内容
# 多个
# 不做
# 则可
# 如对
# 在此基础上
# 为空
# 可以用来
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251811 】
【
AI营销90571 】
相关推荐:
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
如何用虚拟主机快速搭建网站?详细步骤解析
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
如何在IIS中配置站点IP、端口及主机头?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
Python文件异常处理策略_健壮性说明【指导】
高端建站三要素:定制模板、企业官网与响应式设计优化
Python进程池调度策略_任务分发说明【指导】
HTML 中如何正确使用模板变量为元素的 name 属性赋值
大学网站设计制作软件有哪些,如何将网站制作成自己app?
Swift开发中switch语句值绑定模式
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
实例解析angularjs的filter过滤器
jQuery validate插件功能与用法详解
如何快速搭建虚拟主机网站?新手必看指南
如何在阿里云域名上完成建站全流程?
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
Laravel怎么清理缓存_Laravel optimize clear命令详解
香港网站服务器数量如何影响SEO优化效果?
java ZXing生成二维码及条码实例分享
如何用免费手机建站系统零基础打造专业网站?
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
制作公司内部网站有哪些,内网如何建网站?
Laravel如何处理异常和错误?(Handler示例)
使用spring连接及操作mongodb3.0实例
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
Laravel如何自定义错误页面(404, 500)?(代码示例)
BootStrap整体框架之基础布局组件
如何在IIS管理器中快速创建并配置网站?
如何在IIS中新建站点并解决端口绑定冲突?
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
高性能网站服务器配置指南:安全稳定与高效建站核心方案
EditPlus 正则表达式 实战(3)
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
Laravel如何使用查询构建器?(Query Builder高级用法)
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
Python并发异常传播_错误处理解析【教程】
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
Laravel如何优化应用性能?(缓存和优化命令)
用v-html解决Vue.js渲染中html标签不被解析的问题
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析

