Nginx配置IP拦截

这篇具有很好参考价值的文章主要介绍了Nginx配置IP拦截。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近百家饭团队开源了一个Nginx日志分析工具APIcat,这周在生成报告的基础上,实现了基于Nginx的自动拦截防护,正好研究了一下Nginx配置IP拦截的配置

配置方式

nginx配置ip拦截基本是通过deny和allow两个配置关键字来实现的。可以配置单ip的拦截放行,也可以配置网段的拦截放行,比如:

allow 1.2.3.4;
deny 1.2.3.4/24;
allow 1.2.3.4/16;
deny all;

关键字后跟具体的IP或者CIDR格式的网段即可,注意加上; 否则会报格式错误。

配置和一般防火墙一样,匹配从上到下进行,匹配到的第一条就生效,比如上面这个例子,1.2.3.4会直接匹配第一条单IP的配置,而1.2.3.1会匹配第二条,1.2.4.1会匹配第三条。如果配置的顺序改变了,就会影响匹配效果,比如,如果写成这样:

deny 1.2.3.4/24;
allow 1.2.3.4;
allow 1.2.3.4/16;
deny all;

1.2.3.4会因为匹配到第一条而造成直接被deny。 

配置的地点

一共有三个地方可以配置IP拦截。

配置为全局拦截

在nginx.conf里面我们可以配置全局的客户IP拦截,在配置的http段增加deny标识即可

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #看这里
    deny 1.2.3.4;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

配置为单服务模式

如果只是对某个server配置IP拦截,则可以在server段配置,针对debian/ubuntu等,server配置在conf.d/里面,则可以不在nginx.conf里配置,而在conf.d里面的具体配置文件里配置。例如

server {
  listen 80;
  server_name localhost;

  # 看这里
  deny 1.2.3.4


}

为某个独立Url配置

如果ip拦截规则只需要针对某个独立的Url配置,则可以结合location配置进行,location是server的一段,则配置位置还是在conf.d里面的具体配置里,但可以配置成这样:

server {
  listen 80;
  server_name localhost;


  location / {
   # 看这里
   deny 1.2.3.4;
  }
}

为limit_except配置

除了上述配置方式之外,还可以在limit_except里面配置,针对不同的请求方式进行排除式设置,例如

 limit_except GET POST { 
   deny  1.2.3.4; 
 }

上面的配置表示除了GET和POST之外,其他的请求方式进行deny配置。

该配置段可以在http、server和location中使用。 

配置方式

除了上述的直接在配置文件中配置之外,我们还可以利用include把ip配置放置在配置外面,方便独立更新,这种方式在上诉三个配置地点都可以使用,例如

server {
  listen 80;
  server_name localhost;

  # Apicat detection include
  include       /etc/nginx/conf.d/iptables;

}

上述是一个server配置段,里面,我们可以通过增加一条include来include外部的一个ip规则文件。

而在外部配置文件中直接配置ip规则

deny 1.2.3.4

这样,我们就可以把ip规则独立在一个独立的文件里了,目前APIcat采用的这种方式。

是否支持IPv6

IPv6已经是一个很常见的网络访问方式了,上述配置经检查都支持IPv6,例如

deny 240c:1::/32;

除了ip地址之外,其实还可以deny unix来排除unix本地读取,这个用的少,就不讲了。文章来源地址https://www.toymoban.com/news/detail-402487.html

到了这里,关于Nginx配置IP拦截的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx配置获取真实ip

    要想在应用中获取到真实IP,取决于各个转发节点的传递配置, 第一、要确定客户端使用哪个请求头传递IP地址 第二、第一转发点, proxy_set_header field value value是变量值,来源于请求方 field是变量名,是要发给下一站的变量 注意这个顺序,set设置要发往下一站的变量,紧接着

    2024年02月11日
    浏览(49)
  • nginx 配置代理ip访问https的域名配置

    目录 问题背景 解决方式 正向代理:  反向代理:  通俗点儿一句话,正向与反向的区别: 在某些单位或机构内部,访问互联网接口需要通过指定的服务器去访问,那我们就需要通过代理 ip 和 端口去访问外网域名。 示例:如何通过指定 ip 和 端口 访问 https://api.elecredit.co

    2024年02月14日
    浏览(47)
  • Tomcat与Nginx多项目部署,同一个ip不同端口部署,完整教程

    多项目,同IP,不同端口部署访问。 部署一个PC项目,访问地址:http://192.168.31.1:8085/项目名称 部署一个dist项目,访问地址:http://192.168.31.1:8086/项目名称 注:以上只是举例! 之前没有这样的经验,也没有查到整合的资料,所以整合记录一下~ 不推荐低版本或最新版本,最新版

    2024年02月03日
    浏览(58)
  • 通过Nginx配置访问IP白名单

          有时部署的应用需要只允许某些特定的IP能够访问,其他IP不允许访问,这时,就要设置访问白名单; 设置访问白名单有多种方式: 1.通过网络防火墙配置,例如阿里云/华为云管理平台 2.通过服务器防火墙配置,iptables 3.通过nginx配置访问分发限制 4.通过nginx的allow、den

    2024年02月16日
    浏览(48)
  • nginx配置获取客户端的真实ip

    场景描述: 访问路径: A机器 - B机器的 -C虚拟机 : A机器为客户端用户,本地地址为 192.168.0.110 B机器为服务端反向代理服务器 本地地址为192.168.0.128 –(192.168.56.1) C机器为B主机安装的linux虚拟机,并安装了nginx ,本地ip为**(192.168.56.10)** 从侧面反映了反向代理的好处,直

    2024年02月05日
    浏览(44)
  • Nginx配置只允许部分ip访问

           前几天解答一个需求,公司的服务器映射的外网ip被恶意的绑定了域名了,导致人家可以通过域名直接访问我们的测试服务,运营商觉得我们绑定未备案域名,联系我们让我们整改,简单的处理就是只允许通过外网ip访问,过滤掉域名访问方式。       简单处理如下:

    2024年02月11日
    浏览(50)
  • nginx安装及(域名、端口、ip)配置

    1、首先安装pcre库 说明:pcre使nginx具备URL重写的rewrite模块 1)查看系统环境 cat /etc/redhat-release 2)显示64位系统 uname -r  、 uname -m  2、yum安装pcre命令 配置下载源 (1)安装:yum install -y pcre pcre-devel 安装后查看:rpm -qa pcre pcre-devel 注意:nginx安装依赖pcre、pcre-devel 、openssl、open

    2024年02月05日
    浏览(40)
  • 如何给Nginx配置访问IP白名单

    一、Nginx配置访问IP白名单 有时部署的应用需要只允许某些特定的IP能够访问,其他IP不允许访问,这时,就要设置访问白名单; 设置访问白名单有多种方式: 1.通过网络防火墙配置,例如阿里云/华为云管理平台 2.通过服务器防火墙配置, iptables 3.通过nginx配置访问分发限制

    2024年02月07日
    浏览(43)
  • Nginx配置ip白名单(服务权限控制)

    Nginx服务器权限控制: Nginx 是一款高性能的 HTTP 和反向代理服务器。它可以通过配置文件实现权限控制,从而限制或允许特定的 IP 地址、网络或用户访问指定的资源。这里是一些基本的 Nginx 权限控制方法: 1. 基于 IP 地址的访问控制 在 Nginx 配置文件中,可以使用  allow  和

    2024年02月06日
    浏览(38)
  • nginx配置IP白名单的步骤介绍

    在日常运维工作中会碰到这样的需求,设置网站访问只对某些ip开放,其他ip的客户端都不能访问,下面这篇文章主要给大家介绍了关于nginx配置IP白名单的详细步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下 分析nginx访问日志,有哪些IP访问过nginx。 命令参考: awk \\\'{pr

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包