Nginx限制IP访问的实现示例

 更新时间:2024年06月13日 10:03:51   作者:莽村宏伟  
限制某些IP地址访问网站是一个常见的需求,本文主要介绍了Nginx限制IP访问的实现示例,具有一定的参考价值,感兴趣的可以了解一下

在Web服务器管理中,限制某些IP地址访问网站是一个常见的需求。Nginx作为一款高性能的HTTP服务器和反向代理服务器,提供了灵活强大的配置选项来实现这一功能。本文将详细讲解如何在Nginx中限制IP访问,并通过示例代码展示具体操作。

一、Nginx配置文件

Nginx的配置文件通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/目录下。可以通过编辑这些配置文件来实现IP访问限制。

二、限制IP访问的方法

1. 基于allow和deny指令

Nginx提供了allow和deny两个指令来控制IP访问。其中:

  • allow:允许指定IP地址或子网范围的访问。
  • deny:拒绝指定IP地址或子网范围的访问。

这些指令可以在http、server或location块中使用。

2. 基本示例

假设有一个简单的Nginx配置文件,如下所示:

server {
  listen 80;
  server_name example.com;

  location / {
    root /var/www/html;
    index index.html;
  }
}

希望只有IP地址为192.168.1.1的用户能够访问这个站点,其他用户都被拒绝访问。以下是实现方法:

server {
  listen 80;
  server_name example.com;

  location / {
    # 允许指定的IP地址访问
    allow 192.168.1.1;
    # 拒绝所有其他IP地址访问
    deny all;

    root /var/www/html;
    index index.html;
  }
}

3. 详细示例及注释

以下示例展示了在不同的配置块中使用allow和deny指令:

示例 1: 在server块中限制IP访问

http {
  server {
    listen 80;
    server_name example.com;

    # 允许10.0.0.1 IP访问
    allow 10.0.0.1;
    # 允许10.0.0.0/24网段内的IP访问
    allow 10.0.0.0/24;
    # 拒绝所有其他IP地址访问
    deny all;

    location / {
      root /var/www/html;
      index index.html;
    }
  }
}

示例 2: 在location块中限制IP访问

http {
  server {
    listen 80;
    server_name example.com;

    location /admin {
      # 允许私有IP网段访问
      allow 192.168.0.0/16;
      # 拒绝所有其他IP地址访问
      deny all;

      root /var/www/html/admin;
      index index.html;
    }

    location / {
      root /var/www/html;
      index index.html;
    }
  }
}

示例 3: 多个location块中限制IP访问

http {
  server {
    listen 80;
    server_name example.com;

    location /admin {
      # 允许特定的IP访问/admin路径
      allow 203.0.113.1;
      deny all;

      root /var/www/html/admin;
      index index.html;
    }

    location /private {
      # 允许特定网段访问/private路径
      allow 192.168.1.0/24;
      deny all;

      root /var/www/html/private;
      index index.html;
    }

    location / {
      root /var/www/html;
      index index.html;
    }
  }
}

4. 测试配置

编辑完配置文件后,测试配置并重新加载Nginx:

# 测试Nginx配置文件是否有语法错误
sudo nginx -t

# 重新加载Nginx以应用新的配置
sudo systemctl reload nginx

三、总结

通过使用Nginx的allow和deny指令,可以轻松地控制哪些IP地址或子网段能够访问网站资源。这对于保护敏感信息、限制恶意访问等场景非常有用。

到此这篇关于Nginx限制IP访问的实现示例的文章就介绍到这了,更多相关Nginx限制IP访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx通过代理服务器访问目标接口的实现

    Nginx通过代理服务器访问目标接口的实现

    本文主要介绍了Nginx通过代理服务器访问目标接口的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • 负载均衡的基本知识以及使用nginx进行负载均衡的简单例子

    负载均衡的基本知识以及使用nginx进行负载均衡的简单例子

    今天小编就为大家分享一篇关于负载均衡的基本知识以及使用nginx进行负载均衡的简单例子,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • nginx安装以及配置的详细过程记录

    nginx安装以及配置的详细过程记录

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,下面这篇文章主要给大家介绍了关于nginx安装以及配置的详细过程,文章将实现的过程介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • nginx提示:500 Internal Server Error错误解决办法

    nginx提示:500 Internal Server Error错误解决办法

    这篇文章主要介绍了 nginx提示:500 Internal Server Error错误解决办法的相关资料,这里提供了解决该问题的详细步骤,希望能帮助到大家,需要的朋友可以参考下
    2017-08-08
  • OpenResty是什么,OpenResty和Nginx的区别?

    OpenResty是什么,OpenResty和Nginx的区别?

    Nginx作为一款轻量级、高性能的Web服务器,传统局限性也很明显:静态配置、逻辑扩展依赖C模块开发,使得它在需要动态业务逻辑的场景中显得捉襟见肘,<BR>而OpenResty的出现,打破了这一僵局,它通过将Lua脚本深度集成到Nginx中,将“静态代理服务器”升级为“动态应用平台”
    2025-04-04
  • Nginx CertBot配置HTTPS泛域名证书Debian及常见问题

    Nginx CertBot配置HTTPS泛域名证书Debian及常见问题

    这篇文章主要介绍了Nginx CertBot配置HTTPS泛域名证书Debian及常见问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Nginx设置HTTPS监听的具体步骤

    Nginx设置HTTPS监听的具体步骤

    这篇文章主要介绍了Nginx设置HTTPS监听的具体步骤,在 Nginx 上设置 HTTPS 证书,并将所有 HTTP 请求重定向到 HTTPS,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-12-12
  • 详解nginx请求头数据读取流程

    详解nginx请求头数据读取流程

    这篇文章主要介绍了详解nginx请求头数据读取流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Nginx 设置域名转发到指定端口的实现方法

    Nginx 设置域名转发到指定端口的实现方法

    这篇文章主要介绍了Nginx 设置域名转发到指定端口的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Nginx与Tomcat实现动静态分离和负载均衡

    Nginx与Tomcat实现动静态分离和负载均衡

    本篇文章主要介绍了Nginx与Tomcat实现动静态分离和负载均衡,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-10-10

最新评论