首页 运维 nginx nginx如何设置目录白名单和ip白名单

nginx如何设置目录白名单和ip白名单

May 18, 2023 pm 03:52 PM
nginx ip

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如何设置目录白名单和ip白名单的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

Rimworld Odyssey温度指南和Gravtech
1 个月前 By Jack chen
Rimworld Odyssey如何钓鱼
1 个月前 By Jack chen
我可以有两个支付帐户吗?
1 个月前 By 下次还敢
初学者的Rimworld指南:奥德赛
1 个月前 By Jack chen
PHP变量范围解释了
3 周前 By 百草

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Laravel 教程
1603
29
PHP教程
1506
276
php写完代码怎么执行 php代码执行的几种常见方式 php写完代码怎么执行 php代码执行的几种常见方式 May 23, 2025 pm 08:33 PM

PHP代码可以通过多种方式执行:1.使用命令行,直接输入“php文件名”执行脚本;2.通过Web服务器,将文件放入文档根目录并通过浏览器访问;3.在IDE中运行,利用内置调试工具;4.使用在线PHP沙箱或代码执行平台进行测试。

安装Nginx后配置文件路径及初始设置 安装Nginx后配置文件路径及初始设置 May 16, 2025 pm 10:54 PM

了解Nginx的配置文件路径和初始设置非常重要,因为它是优化和管理Web服务器的第一步。1)配置文件路径通常是/etc/nginx/nginx.conf,使用nginx-t命令可以查找并测试语法。2)初始设置包括全局设置(如user、worker_processes)和HTTP设置(如include、log_format),这些设置允许根据需求进行定制和扩展,错误配置可能导致性能问题和安全漏洞。

linux如何限制用户资源?ulimit怎么配置? linux如何限制用户资源?ulimit怎么配置? May 29, 2025 pm 11:09 PM

Linux系统通过ulimit命令限制用户资源,防止资源过度占用。1.ulimit是shell内置命令,可限制文件描述符数(-n)、内存大小(-v)、线程数(-u)等,分为软限制(当前生效值)和硬限制(最高上限)。2.临时修改直接使用ulimit命令,如ulimit-n2048,但仅对当前会话有效。3.永久生效需修改/etc/security/limits.conf及PAM配置文件,并添加sessionrequiredpam_limits.so。4.systemd服务需在unit文件中设置Lim

Debian Nginx配置技巧有哪些 Debian Nginx配置技巧有哪些 May 29, 2025 pm 11:06 PM

在Debian系统上配置Nginx时,以下是一些实用的技巧:配置文件的基本结构全局设置部分:定义影响整个Nginx服务的行为参数,比如工作线程数量及运行用户权限。事件处理部分:决定Nginx如何应对网络连接,是提升性能的关键配置。HTTP服务部分:包含大量与HTTP服务相关的设定,可内嵌多个server和location块。核心配置选项worker_connections:定义每个工作线程所能处理的最大连接数,通常设为1024。multi_accept:激活多连接接收模式,增强并发处理的能力。s

NGINX的目的:服务Web内容等 NGINX的目的:服务Web内容等 May 08, 2025 am 12:07 AM

nginxserveswebcontentandactsasareverseproxy,loadBalancer和more.1)效率高效的servesstaticContentLikeHtmlandImages.2)itfunctionsasareverseproxybalancer,and andginxenhanceperforfforfforfforfforfforffrenfcaching.4)

NGINX故障排除:诊断和解决常见错误 NGINX故障排除:诊断和解决常见错误 May 05, 2025 am 12:09 AM

Nginx常见错误的诊断与解决方法包括:1.查看日志文件,2.调整配置文件,3.优化性能。通过分析日志、调整超时设置和优化缓存及负载均衡,可以有效解决404、502、504等错误,提高网站稳定性和性能。

配置Nginx服务开机自启动的具体步骤 配置Nginx服务开机自启动的具体步骤 May 16, 2025 pm 10:39 PM

Nginx配置开机自启动的步骤如下:1.创建systemd服务文件:sudonano/etc/systemd/system/nginx.service,并添加相关配置。2.重新加载systemd配置:sudosystemctldaemon-reload。3.启用Nginx开机自启动:sudosystemctlenablenginx。通过这些步骤,Nginx会在系统启动时自动运行,确保网站或应用的可靠性和用户体验。

Debian Apache2的SEO优化技巧有哪些 Debian Apache2的SEO优化技巧有哪些 May 28, 2025 pm 05:03 PM

DebianApache2的SEO优化技巧涵盖多个层面,以下是一些关键方法:关键词研究:利用工具(如关键词魔术工具)挖掘页面的核心及辅助关键词。优质内容创作:产出有价值且原创的内容,内容需经过深入调研,确保语言流畅且格式清晰。内容排版与结构优化:运用标题和小标题引导阅读。编写简洁明了的段落和句子。利用列表展示重点信息。结合图片、视频等多媒体增强表现力。留白设计提升文本易读性。技术层面SEO改进:robots.txt文件:规定搜索引擎爬虫的访问权限。加速网页加载:借助缓存机制和Apache配置优化

See all articles