我的编程空间,编程开发者的网络收藏夹
学习永远不晚

nginx配置IP白名单的详细步骤

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

nginx配置IP白名单的详细步骤

分析nginx访问日志,有哪些IP访问过nginx。

命令参考:awk '{print $1}' logs/access.log | sort | uniq -c | sort -nr -k1

输出的效果案例:

1053 192.168.3.15
893 192.168.3.10
818 192.168.0.8

1、添加IP白名单文件

在nginx目录的 conf 中添加文件 ip.conf注意白名单文件不用添加任何注释,可以有空行

vi ip.conf

192.168.3.11 1;

192.168.3.10 1;
192.168.0.112 1;

2、配置nginx.conf

编辑http节点:

http {
    # ...
    # geo IP whitelist
    geo $remote_addr $ip_whitelist {
       default 0;
       include ip.conf;
    }
 
    # ...
}

编辑server节点:

server {
    listen       80;
    # ...
    # IP whitelist
    set $whitelist_flag 1;
    if ( $ip_whitelist != 1 ) {
       set $whitelist_flag "${whitelist_flag}0";
    }
    if ( $request_uri !~* '/warn_navigate_page' ) {
       set $whitelist_flag "${whitelist_flag}0";
    }
    if ( $whitelist_flag = "100" ) {
       #return 403;
       rewrite ^(.*)$ $scheme://$host:$server_port/warn_navigate_page break; #白名单的提示页面
    }
 
    # ...
}

也可以在location节点中编辑,示例:

编辑location节点:

location /test {
    proxy_pass  http://IP/test;
    # ...
    # IP whitelist
    set $whitelist_flag 1;
    if ( $ip_whitelist != 1 ) {
            set $whitelist_flag "${whitelist_flag}0";
    }
    if ( $request_uri !~* '/warn_navigate_page' ) {
            set $whitelist_flag "${whitelist_flag}0";
    }
    if ( $whitelist_flag = "100" ) {
            #return 403;
            rewrite ^(.*)$ $scheme://$host:$server_port/warn_navigate_page break; #白名单的提示页面
    }
 
    # ...
}

添加导航的提示页 /warn_navigate_page

server {
    listen       80;
    # ...
 
 
    # 白名单的提示导航页面
    location /warn_navigate_page {
       	root /home/java/nginx/bizapp/warn_navigate_page;
        index  warn_navigate_page.html warn_navigate_page.htm;
        rewrite ^(.*)$ /warn_navigate_page.html break;
    }
}

3、编辑白名单的提示导航页面

/home/java/nginx/bizapp/warn_navigate_page 中编辑页面warn_navigate_page.html

参考:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no">
    <meta content="yes" name="apple-mobile-web-app-capable">
    <meta content="black" name="apple-mobile-web-app-status-bar-style">
    <meta content="telephone=no" name="format-detection">
    <meta content="email=no" name="format-detection">
    <title>系统通知</title>
    <style type="text/css">
        body {
            background: url(https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png) no-repeat;
            background-size: 100% 100%;
            background-attachment: fixed;
        }
    </style>
</head>

<body>
    <div>
        <pre>                                                                                     【通知公告】
        尊敬的用户您好,系统已不提供IP地址直接访问,请联系管理员添加白名单。互联网的域名访问地址:<a href="https://www.baidu.com">跳转https://www.baidu.com</a>
        </pre>
    </div>

</body>
<script type="text/javascript">
</script>

</html>

预计效果图

补充:添加白名单后nginx报错:

nginx: [warn] low address bits of 45.11.55.132/28 are meaningless in /opt/openresty/nginx/conf/public/white.conf:69
nginx: [warn] low address bits of 12.70.12.195/28 are meaningless in /opt/openresty/nginx/conf/public/white.conf:70

解决方法:

错误原因是因为子网划分错误,比如 45.11.55.132/28,每个子网有16个ip,所以起始ip一定要是16的倍数,

这个子网应该写成这样45.11.55.128/28,修改完毕后再reload nginx就不会报错了。

总结 

到此这篇关于nginx配置IP白名单的文章就介绍到这了,更多相关nginx配置IP白名单内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

nginx配置IP白名单的详细步骤

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

nginx配置IP白名单的详细步骤

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

linux手工配置ip地址详细步骤

目录1、先进入网卡配置目录2、编辑ifcfg-ens33网卡的配置文件3、刷新网络服务4、测试ping百度能否上网1、先进入网卡配置目录2、编辑ifcfg-ens33网卡的配置文件vimifcfg-ens33如下
2022-06-04

阿里云ECS设置IP白名单的详细说明

随着网络技术的发展,IP地址的管理已经成为了一个重要的环节。在阿里云ECS中,IP白名单的设置是保障网络安全的重要手段之一。本文将详细介绍如何设置IP白名单,并给出一些注意事项。一、阿里云ECS设置IP白名单的步骤登录阿里云控制台,点击“ECS”选项卡,选择要管理的ECS实例。在实例管理页面中,找到并点击“网络配
阿里云ECS设置IP白名单的详细说明
2023-11-23

很详细的Log4j配置步骤

以下是详细的Log4j配置步骤:1. 在项目中添加log4j库。可以通过Maven或手动下载jar包的方式将log4j库添加到项目中。2. 创建一个log4j.properties或log4j.xml配置文件。可以使用log4j.prope
2023-08-09

Mysql双主配置的详细步骤

目录前言一、mysql配置文件(1)节点A配置(2)节点B配置二、配置节点A为节点B的master(主从模式)三、完成双主配置四、测试五、控制同步的库或表六、一个账号多个IP总结前言特点:在双主配置中,两台mysql互为主从节点。节点A是
2022-06-23

linux配置防火墙的详细步骤

本篇内容介绍了“linux配置防火墙的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通过iptables我们可以为我们的Linux服
2023-06-13

vue3安装配置sass的详细步骤

sass是css的预处理器,扩展了css语言,提供了规则、变量、混入、选择器、继承、内置函数等特性,有助于减少CSS重复的代码,节省开发时间,下面这篇文章主要给大家介绍了关于vue3安装配置sass的相关资料,需要的朋友可以参考下
2022-12-28

springmvc整合freemarker配置的详细步骤

一、对应的导包(有些包是不必须的)2023-05-31

Linux自带防火墙开启IP白名单的的配置详解

防火墙配置文件名称/etc/sysconfig/iptablesRed Hat Enterprise Linux Server release 6.0开始默认配置如下[root@DMT-Oracle-server ~]# cat /etc/
2023-06-06

编程热搜

目录