NGINX Web 服务器安全加固有多种方法,其中一种是基于 IP 地址的访问控制。本指南解释了如何通过在 NGINX 中基于客户端的 IP 地址控制访问来保护 Web 应用程序。

NGINX中基于客户端IP地址控制访问

NGINX 中的ngx_http_access_module模块可以限制对某些客户端 IP 地址的访问。您可以使用允许和拒绝指令激活它。

顾名思义,allow 指令允许访问特定的 IP 地址、网络、Unix 套接字或全部(前面实体的关键字),而拒绝指令拒绝访问特定的 IP 地址、网络、Unix 套接字或全部。

这两个指令在HTTP、服务器、位置以及limit_except上下文中都是有效的。下面是在位置上下文中使用允许和拒绝指令来限制对 API 服务的访问的示例:

upstream app_api {keepalive 100;server 10.1.1.50:5000;server 10.1.1.71:5001;
}
server {listen 80;server_name _;access_log /var/log/nginx/app_api_access.log main;error_log /var/log/nginx/app_api_error.log debug;root /usr/share/nginx/html/;    location / {try_files $uri /api;}location /api {proxy_read_timeout 3600;proxy_connect_timeout 3600s;keepalive_timeout 15;send_timeout 300;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header Host $http_host;proxy_redirect off;proxy_http_version 1.1;proxy_set_header Connection "";proxy_pass http://app_api$request_uri;#list of allowed IPs to access APIallow 10.10.10.20;allow 10.10.40.29;allow 192.168.2.23;  allow 192.168.10.0/24;deny  all;}
}

在上面的示例中,仅允许10.10.10.20、10.10.40.29、192.168.2.23 IP 地址以及192.168.10.0/24网络中的任何 IP 地址访问任何代理 API 端点的请求。来自任何其他 IP 地址或网络或 UNIX 域套接字的请求将被拒绝。

NGINX 将向客户端响应 403 禁止错误,如图所示。

当您检查/var/log/nginx/app_api_error.log错误日志时,您会发现类似于以下屏幕截图中的条目:

# cat /var/log/nginx/app_api_error.log debug

本指南在NGINX中基于客户端IP地址控制访问到此结束,你比较常用那一种呢?

NGINX中如何根据客户端IP地址控制访问相关推荐

  1. 网站配置了Cloudflare代理后,如何配置Nginx获取的真实客户端IP地址?

    网站配置了Cloudflare代理后,如何配置Nginx获取的真实客户端IP地址? 这是一个很简单的问题,如何在后台获取真实的访问者IP地址? 网站为了避免有些不怀好意的访问者,不得不自动分析一下客户 ...

  2. Nginx或Apache禁止某些IP段访问的两种方法

    修改Nginx配置文件nginx.conf Nginx配置访问IP可以修改nginx.conf文件,只需要在server中添加allow和deny的IP即可,如下: server {     list ...

  3. JAVA中经过nginx反向代理获取客户端ip并获取相关坐标等信息

    关于搜狐新浪ip库查询接口的使用 直接输出访客ip及所在城市: <script src="http://pv.sohu.com/cityjson?ie=utf-8" > ...

  4. PHP、Tomcat获取Nginx代理后的客户端真实IP

    PHP.Tomcat获取Nginx代理后的客户端真实IP 文章目录 PHP.Tomcat获取Nginx代理后的客户端真实IP 一.PHP获取Nginx代理后客户端真实IP Nginx配置 PHP配置 ...

  5. web服务之Nginx中的location匹配与rewrite重写跳转

    文章目录 常见的Nginx正则表达式 location location分为三类 location常用的匹配规则 location 优先级 location 示例说明 三个匹配规则定义 rewrite ...

  6. Web服务器群集--Nginx网站服务(运行控制,访问状态统计,基于授权和客户端的访问控制,基于域名,端口,IP的虚拟web主机访问)

    文章目录 前言 一:Nginx服务基础 1.1:Nginx概述 1.2:Nginx编译安装(过程) 1.3:运行控制(实验过程) 1.4:配置文件nginx.conf 1.5:Nginx的访问状态统计 ...

  7. nginx中限制IP同一时间段的访问次数

    nginx中限制IP同一时间段的访问次数 如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DD ...

  8. nginx curl命令有效 curl_setopt无效_日志分析系列(外传一):Nginx透过代理获取真实客户端IP...

    本系列中的故事纯属虚构,如有雷同实属巧合 小B是Q公司的安全攻城狮,为了完成任务小B开始做起了调研(欲知背景如何,且听下回分说). 首先小B弄明白了Q公司的应用系统架构是:Client --> ...

  9. Nginx在多层代理下获取真实客户端IP地址

    最近在研究nginx中如何获取真实客户端IP的方法.众所周知,在编译Nginx时,可通过添加http_realip_module模块来获取真实客户端IP地址.何为真实IP地址呢?请看下图,既获取到的真 ...

最新文章

  1. 多层神经网络(BP算法)介绍
  2. CFX计算报错和相应解决办法(浮点错误等-持续更新)
  3. 二分法在顺序排列的字典中查找单词(二分)
  4. 这个行业人才紧缺,就业率超高!未来大有可为!
  5. css字体自定义,bootstrap自定义字体
  6. (王道408考研数据结构)第六章图-第四节2:最小生成树之克鲁斯卡尔算法(思想、代码、演示、答题规范)
  7. php判断ajax传入,利用PHP判断是否为AJAX请求代码
  8. <读书笔记> Thinking in python (Python 设计模式) 3. Proxy and State模式
  9. 《WF编程》系列之15 - 顺序工作流与SequenceActivity 3 顺序工作流
  10. Vuex actions 异步操作基础
  11. 使用C#代码实现增加用户帐号
  12. 云计算的下个十年什么样?
  13. 计算机课堂热身游戏,电脑课我们常玩的13个小游戏
  14. 如何用excel制作饼图
  15. 操作系统:进程间通讯的七种方式
  16. Linux中EOF用法
  17. odoo12 物流 自动计算运费 ,采购销售使用不同计量单位自动换算
  18. Unity 在设备上材质显示正常,但是Editor下材质显示为紫色
  19. 蜡烛图(K线图)-2反转形态
  20. RHCSA-A2.配置默认软件仓库

热门文章

  1. “芬香”获上亿融资,店宝宝:别低估私域流量的作用
  2. fstream常用方法详解
  3. word段落操作快捷键(一)
  4. DataStream API【3】
  5. 学会Python如何利用业余时间赚外快?分享几个接单途径
  6. java 打印出如下图案(菱形)
  7. 文件的下载(2)——解决下载文件名的乱码问题
  8. unity讲解(入门)
  9. Maven安装与配置详解、多镜像节点的配置
  10. 【linux安装opencv3.4报错】ib/libopencv_videoio.so.3.4.2: undefined reference to `avcodec_get_context_defa