当前位置: 首页 > news >正文

Nginx禁用IP和IP段

前言:因最近项目需要,现在个别IP可以访问服务器,例如75前端服务器访问两台后端服务器+文件服务器,两台后端服务器访问两台数据库服务器,任何IP可以访问前端等。

Nginx除了反向代理负载均衡,还可以限流缓存黑白名单灰度发布禁用IP

下面重点讲述下Nginx禁用IP和IP段

1. 禁用IP和IP段的语法说明

Nginx的ngx_http_access_module 模块可以封配置内的ip或者ip段,语法如下

deny IP;
deny subnet;
allow IP;
allow subnet;
# block all ips
deny    all;
# allow all ips
allow    all;

如果规则之间有冲突,会以最前面匹配的规则为准

2. 配置禁用ip和ip段具体做法

一般nginx的目录在/usr/local/nginx/,先建一个封ip的配置文件blockips.conf,然后vi blockips.conf编辑此文件,在文件中输入要封的ip。

deny 10.128.231.XX;

deny 10.128.231.XX;

然后打开nginx.conf文件,在http配置节内添加下面一行配置:

include blockips.conf;

测试现在的nginx配置文件是否是合法的:

/usr/local/nginx/sbin/nginx -t

如果配置没有问题,就会输出:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

nginx重新载入配置文件

/usr/local/nginx/sbin/nginx -s reload

3.针对某个网站单独设置

当Nginx代理了很多网站时,有的我们想让所有人访问,有的想让部分人访问,那么上面的设置就不能满足我们的需求了,我们可以来到每个网站的代理配置文件,针对当前网站单独设置
比如,现在我们网站的代理配置是这样的:

server {
    listen       80;
    server_name  wx-service;
    location / {
         root /usr/share/nginx/html/test;
         index index.html index.htm;
    }
}

当我们想只对这个网站进行禁止或允许的配置时,我们可以在server{}段中添加一行配置

server {
    listen       80;
    server_name  wx-service;

    allow 10.128.231.XX;

    deny all;
    location / {
         root /usr/share/nginx/html/test;
         index index.html index.htm;
    }
}

4. 格式化nginx的403页面

首先执行下面的命令:

cd /usr/local/nginx/html
vi error403.html

然后输入403的文件内容,例如:

<html>
<head><title>Error 403 - IP Address Blocked</title></head>
<body>
Your IP Address is blocked. 
</body>
</html>

参考:https://www.cnblogs.com/binghe001/p/13293032.html#:~:text=%E7%A6%81%E7%94%A8IP%E5%92%8CIP%E6%AE%B5%20Nginx%E7%9A%84ngx_http_access_module%20%E6%A8%A1%E5%9D%97%E5%8F%AF%E4%BB%A5%E5%B0%81%E9%85%8D%E7%BD%AE%E5%86%85%E7%9A%84ip%E6%88%96%E8%80%85ip%E6%AE%B5%EF%BC%8C%E8%AF%AD%E6%B3%95%E5%A6%82%E4%B8%8B%EF%BC%9A%20deny%20IP%3B%20deny%20subnet%3B,allow%20IP%3B%20allow%20subnet%3B%20%23%20block%20all%20ips

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 二叉树的判断
  • 详解 Redis 队列 实现
  • druid+logback打印sql执行日志
  • ubuntu 20 安装mysql workbench 过程
  • 图像--数据增强
  • 排序算法【归并排序】
  • XSS小游戏(题目+解析)DOM破坏!!!
  • Lambda表达式与流式编程
  • 开发笔记:uniapp+vue+微信小程序 picker +后端 省市区三级联动
  • 超精细CG杰作:8K壁纸级官方艺术插画,展现极致美丽与细节的汉服女孩
  • nginx实战演练
  • Vue3核心探索:深入解析组合式API中的mount方法
  • 保研考研机试攻略:第三章——数学(1)
  • 代码随想录算法训练营 | 动态规划 part05
  • 设计模式解析:组合模式与装饰模式
  • co.js - 让异步代码同步化
  • const let
  • ES6系列(二)变量的解构赋值
  • happypack两次报错的问题
  • Javascript基础之Array数组API
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • PV统计优化设计
  • rabbitmq延迟消息示例
  • ReactNative开发常用的三方模块
  • windows下mongoDB的环境配置
  • 从零开始在ubuntu上搭建node开发环境
  • 从伪并行的 Python 多线程说起
  • 复习Javascript专题(四):js中的深浅拷贝
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 关于字符编码你应该知道的事情
  • 机器学习 vs. 深度学习
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端临床手札——文件上传
  • 强力优化Rancher k8s中国区的使用体验
  • 一起参Ember.js讨论、问答社区。
  • nb
  • 《天龙八部3D》Unity技术方案揭秘
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 阿里云重庆大学大数据训练营落地分享
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​Linux·i2c驱动架构​
  • # SpringBoot 如何让指定的Bean先加载
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #数据结构 笔记一
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (1)STL算法之遍历容器
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (C语言)fgets与fputs函数详解
  • (二)丶RabbitMQ的六大核心
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)ssm学生管理系统 毕业设计 141543