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 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
教你用AI将一段旋律扩展成一首完整的曲子
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何挑选高效建站主机与优质域名?
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
Laravel如何使用Blade模板引擎?(完整语法和示例)
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
如何快速生成橙子建站落地页链接?
Internet Explorer官网直接进入 IE浏览器在线体验版网址
如何快速生成ASP一键建站模板并优化安全性?
简历没回改:利用AI润色让你的文字更专业
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何在服务器上配置二级域名建站?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
如何实现建站之星域名转发设置?
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
lovemo网页版地址 lovemo官网手机登录
北京的网站制作公司有哪些,哪个视频网站最好?
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
如何注册花生壳免费域名并搭建个人网站?
PHP 500报错的快速解决方法
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
文字头像制作网站推荐软件,醒图能自动配文字吗?
如何快速生成可下载的建站源码工具?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
,南京靠谱的征婚网站?
详解vue.js组件化开发实践
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
如何快速生成高效建站系统源代码?
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
如何在IIS中配置站点IP、端口及主机头?
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
轻松掌握MySQL函数中的last_insert_id()
Laravel如何使用Eloquent进行子查询
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
如何在IIS中新建站点并解决端口绑定冲突?
详解MySQL数据库的安装与密码配置
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
北京网站制作的公司有哪些,北京白云观官方网站?
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
JavaScript如何实现类型判断_typeof和instanceof有什么区别
Android okhttputils现在进度显示实例代码
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
零服务器AI建站解决方案:快速部署与云端平台低成本实践
如何在万网开始建站?分步指南解析
Laravel如何使用查询构建器?(Query Builder高级用法)
利用vue写todolist单页应用

