Linux系统架构----nginx的访问控制

nginx的访问控制

一、nginx基于授权的访问控制概述

  • Nginx与Apache一样,可以实现基于用户权限的访问控制,当客户端想要访问相应的网站或者目录时,要求用户输入用户名和密码,才能正常访问
  • 配置步骤生成用户密码认证文件 ;修改主配置文件相对应的目录,添加认证配置项;重启服务,访问测试

二、nginx基于授权的访问控制操作

  • 使用htpasswd生成用户认证文件
#安装htpasswd工具
yum install httpd-tools -y
#创建用户
[root@nginx-server ~]# htpasswd -c /etc/nginx/passwd.db user1 123456
New password: 
Re-type new password: 
Adding password for user user1
#修改密码权限文件
[root@nginx-server ~]# chmod 400 /etc/nginx/passwd.db
#修改所有者为
[root@nginx-server ~]# chown nginx /etc/nginx/passwd.db
#查看密码文件
[root@nginx-server ~]# cat /etc/nginx/passwd.db
user1:$apr1$B1bp6OZb$8axvatyNXnPpmoA8.KQc50
  • 修改主配值文件,添加相应的认证配置项
  [root@nginx-server ~]# vim /etc/nginx/nginx.conflocation / {auth_basic "login password";auth_basic_user_file /etc/nginx/passwd.db;}
  • 重启服务
[root@nginx-server ~]# systemctl restart nginx
  • 验证基于授权的访问控制

在这里插入图片描述

  • 验证成功

在这里插入图片描述

三、nginx基于客户端的访问控制概述

  • 基于客户端的访问控制是通过客户端的IP地址,决定是否允许对页面访问
  • Nginx基于客户端的访问控制要比Apache简单

规则

deny IP/IP段:拒绝某个IP或者网段的客户端访问
allowIP/IP段:允许某个IP或者网段的客户端访问
规则从上往下执行,如匹配则停止,不再往下匹配

四、nginx基于客户端的访问控制的实际操作

  • 修改主配置文件

    [root@nginx-server ~]# vim /etc/nginx/nginx.conf
    location / {
    auth_basic “login password”;
    auth_basic_user_file /etc/nginx/passwd.db;
    deny all;
    #allow all;
    }

  • 重启服务

[root@nginx-server ~]# systemctl restart nginx
  • 测试

在这里插入图片描述

  • 禁止单个IP地址访问和测试
 [root@nginx-server ~]# vim /etc/nginx/nginx.conflocation / {auth_basic "login password";auth_basic_user_file /etc/nginx/passwd.db;deny 10.1.1.172;#allow all;}
[root@nginx-server ~]# systemctl restart nginx.service 
##验证能不能访问成功
[root@nginx-server ~]# curl 10.1.1.172 -I
HTTP/1.1 403 Forbidden
Server: nginx/1.14.1
Date: Fri, 08 Mar 2024 08:20:25 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/731796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt带后缀单位的QLineEdit

QLineEditUnit.h #pragma once #include <QLineEdit> #include <QPushButton>class QLineEditUnit : public QLineEdit {Q_OBJECT public:QLineEditUnit(QWidget* parent Q_NULLPTR);~QLineEditUnit();//获取编辑框单位QString UnitText()const;//设置编辑框单位…

STM32的启动流程分析 和 一些底层控制的原理

阅读引言&#xff1a; 阅读本文之后&#xff0c; 你将对单片机&#xff0c; 甚至是嵌入式系统&#xff0c; 或者是传统的PC机系统的启动流程有一个大致的了解&#xff0c; 本文更加偏向于单片机的启动流程分析。 目录 一、基础知识 1.STM32系列的微控制器&#xff08;mcu&…

自研cloud框架专题–web模块(三)

项目特点一:框架集成 1.引入核心依赖2.配置相关功能 二:功能介绍 1.swagger支持并提供swagger快速配置2.knife增强swagger支持3.全局请求参数校验(Validation)支持4.字段脱敏支持5.默认jackson序列化6.xss,cors支持7.访问日志支持8.全局异常处理,统一返回结果9.系统关键及常用信…

数据结构之deque双端队列

一、概念&#xff1a; 众所周知&#xff0c;数据结构是用来存储数据&#xff0c;deque也不例外&#xff0c;他是集结了队列和栈的性质而成的结构&#xff0c;他几乎拥有所有数据结构能有的操作&#xff0c;看似已经大杀四方&#xff0c;可实际情况如何呢&#xff0c;那就带者这…

Day 8.TCP包头和HTTP

TCP包头 1.序号&#xff1a;发送端发送数据包的编号 2.确认号&#xff1a;已经确认接收到的数据的编号&#xff08;只有当ACK为1时、确认号才有用&#xff09;&#xff1b; TCP为什么安全可靠 1.在通信前建立三次握手 SYP SYPACK ACK 2.在通信过程中通过序列号和确认号和…

前端javascript的DOM对象操作技巧,全场景解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属的专栏&#xff1a;前端泛海 景天的主页&#xff1a;景天科技苑 文章目录 1.js的DOM介绍2.节点元素层级关系3.通过js修改&#xff0c;清空节点…

【棘手问题】Spring JPA一级缓存导致获取不到数据库表中的最新数据,对象地址不发生改变

【棘手问题】Spring JPA一级缓存导致获取不到数据库表中的最新数据&#xff0c;对象地址不发生改变 一、问题背景二、解决步骤2.1 debug2.2 原因分析2.2.1 数据步骤2.2.2 大模型解释2.2.3 解释举例2.2.4 关键函数 2.3 解决方案 三、Spring JPA一级缓存 一、问题背景 项目的数据…

STM32 通过Modbus协议更改内部Flash(模仿EEPROM)的运行参数

main.c测试 uint8_t uart1RxBuf[64]{0};uint8_t Adc1ConvEnd0; uint8_t Adc2ConvEnd0;int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initial…

C++ 智能指针深度剖析

文章目录 1. 前言2. 为什么需要智能指针&#xff1f;3. 内存泄漏3.1 内存泄漏的概念及危害3.2 内存泄漏的分类3.3 如何检测内存泄漏3.4 如何避免内存泄漏 4. 智能指针的使用及原理4.1 RAII思想4.2 智能指针的原理4.3 C智能指针发展历史4.4 std::auto_ptr4.5 std::unique_ptr4.6…

掌握MySQL,看完这篇文章就够了!

1. MySQL MySQL是一种广泛使用的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由瑞典的MySQL AB公司开发&#xff0c;目前属于甲骨文公司&#xff08;Oracle Corporation&#xff09;。 MySQL使用结构化查询语言&#xff08;SQL&#xff09;进行数据库管理…

C++的面向诗篇:类的叙事与对象的旋律

个人主页&#xff1a;日刷百题 系列专栏&#xff1a;〖C/C小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 &#x1f30e;欢迎各位→点赞&#x1f44d;收藏⭐️留言&#x1f4dd; ​ ​ 一、面向对象的定义 学习C语言时&#xff0c;我们就经常听说C语言是面向过程的&#xff0c;…

[nlp入门论文精读] | Transformer

写在前面 最近工作从CV转向了NLP&#xff0c;于是空余时间便跟着哔哩哔哩李沐老师的视频学习。其实研一NLP课程讲论文的时候&#xff0c;我们小组就选择了经典的Attention和Bert&#xff0c;但还有很多细节并不完全理解&#xff0c;实际使用时也很困惑。 因此这个系列就来记…

红队专题-开源漏扫-巡风xunfeng源码剖析与应用

开源漏扫-巡风xunfeng 介绍主体两部分:网络资产识别引擎,漏洞检测引擎。代码赏析插件编写JSON标示符Python脚本此外系统内嵌了辅助验证功能文件结构功能 模块添加IP三. 进行扫描在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/de587a6f6f694…

ai写作一键生成文章速度快

ai写作是一种基于人工智能技术的自动写作工具&#xff0c;它可以根据用户提供的主题或关键词&#xff0c;快速一键生成文章。与传统的手动写作相比&#xff0c;ai写作的速度更快&#xff0c;效率更高。下面小编就带大家一起来见识下ai写作一键生成文章的速度是如何之快&#xf…

【CSP试题回顾】202012-1-期末预测之安全指数

CSP-202012-1-期末预测之安全指数 解题代码 #include <iostream> #include <algorithm> using namespace std;int n, sum;int main() {cin >> n;for (int i 0; i < n; i){int w, s;cin >> w >> s;sum w * s;}sum max(sum, 0);cout <&…

Electron-builder打包安装包——编译篇

突然有一天想打包个桌面程序&#xff0c;没有打包过&#xff0c;经过九牛二虎之力终于打包出来&#xff0c;在此感谢那些热于分享的前辈&#xff01; 本篇只讲打包运行和出现的问题 一、准备工作&#xff1a;提前下载相关资源包&#xff0c;否则在国内环境下可能因为网络问题…

ECharts 简要介绍及简单实例代码

ECharts 是一个使用 JavaScript 实现的开源可视化库&#xff0c;涵盖各行业图表&#xff0c;满足各种需求。 ECharts 提供了丰富的图表类型和交互能力&#xff0c;使用户能够通过简单的配置生成各种各样的图表&#xff0c;包括但不限于折线图、柱状图、散点图、饼图、雷达图、…

Lwip之TCP服务端示例记录(1对多)

前言 实现多个客户端同时连接初步代码结构已经实现完成(通过轮训的方式) // // Created by shchl on 2024/3/8. // #if 1#include <string.h> #include "lwip/api.h" #include "FreeRTOS.h" #include "task.h" #include "usart.h&…

群辉docker安装sql server

安装步骤 开启群辉 SSH&#xff0c;通过 SSH 工具连接到群辉&#xff0c;运行下面的命令拉取mssql 2019 镜像 sudo docker pull mcr.microsoft.com/mssql/server:2019-latest然后在 docker 中就可以看到该镜像&#xff1a; 在群晖 docker 共享文件夹中创建 mssql2009 文件夹 …

Qt插件之输入法插件的构建和使用(二)

文章目录 主键盘搭建Google开源引擎音节分割工具类参考项目下载搭建好各个基础控件之后,就可以开发输入法的主界面和引擎了,这也是输入法的核心。 主键盘搭建 输入法的主界面本质上是一个QStackedWidget容器,将各个类型的输入键盘插入到容器中,然后根据业务需要切换不同的…