nginx基于主机和用户访问控制以及缓存简单例子
一.基于主机访问控制
1.修改nginx.conf文件
2.到其他主机上测试
(1)191主机
(2)180主机
二.基于用户访问控制
1.修改nginx.conf文件
2.使用hpasswd为用户创建密码文件,并指定到刚才指定的密码文件webck
3.测试
三.缓存配置
一.基于主机访问控制
1.修改nginx.conf文件
修改server区块内的location块,deny表示禁止这台主机访问,allow表示允许,可以使用all表示禁止/允许所有,一定要注意匹配顺序是从上至下,下例也就表示允许除2.191外的主机访问
server {listen 192.168.2.190;server_name www.aabb.com;error_log /usr/local/src/nginx-1.22.0/logs/error.log;access_log /usr/local/src/nginx-1.22.0/logs/access.log;location / { root /usr/local/src/nginx-1.22.0/html/ip;index index.html index.htm;deny 192.168.2.191; allow all; #deny 192.168.2.0/24; 可以指定一个网段}}
[root@localhost conf]# systemctl restart nginx.service
2.到其他主机上测试
(1)191主机
[root@localhost ~]# ip a | grep ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000inet 192.168.2.191/24 brd 192.168.2.255 scope global noprefixroute ens33
[root@localhost ~]# curl 192.168.2.190
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.22.0</center>
</body>
</html>
(2)180主机
[root@localhost ~]# ip a | grep ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000inet 192.168.2.180/24 brd 192.168.2.255 scope global noprefixroute ens160
[root@localhost ~]# curl 192.168.2.190
190
二.基于用户访问控制
1.修改nginx.conf文件
server {listen 192.168.2.190;server_name www.aabb.com;error_log /usr/local/src/nginx-1.22.0/logs/error.log;access_log /usr/local/src/nginx-1.22.0/logs/access.log;location / { root /usr/local/src/nginx-1.22.0/html/ip;index index.html index.htm;allow all; auth_basic "here"; #加上这两行,这行是出现在第一次访问Nginx站点的弹出框内auth_basic_user_file /usr/local/src/nginx-1.22.0/conf/webck; #指定密码文件}}
[root@localhost conf]# pwd
/usr/local/src/nginx-1.22.0/conf
[root@localhost conf]# ll | grep webck
-rw-r--r-- 1 root root 22 Aug 10 18:54 webck
2.使用hpasswd为用户创建密码文件,并指定到刚才指定的密码文件webck
[root@localhost conf]# htpasswd -c -d /usr/local/src/nginx-1.22.0/conf/webck sulibao
New password:
Re-type new password:
Warning: Password truncated to 8 characters by CRYPT algorithm.
Adding password for user sulibao
[root@localhost conf]# cat webck
sulibao:8sWMglgDCLsGQ #密码已加密
[root@localhost conf]# systemctl restart nginx
3.测试


三.缓存配置
expires参数,下例表示对以这些后缀结尾的图片文件缓存30天
server {listen 192.168.2.190;server_name www.aabb.com;error_log /usr/local/src/nginx-1.22.0/logs/error.log;access_log /usr/local/src/nginx-1.22.0/logs/access.log;location / {root /usr/local/src/nginx-1.22.0/html/ip;index index.html index.htm;allow all;auth_basic "here";auth_basic_user_file /usr/local/src/nginx-1.22.0/conf/webck;}location ~ .*\.(gif|jpg|png)$ {expires 30d;}}
相关文章:
nginx基于主机和用户访问控制以及缓存简单例子
一.基于主机访问控制 1.修改nginx.conf文件 2.到其他主机上测试 (1)191主机 (2)180主机 二.基于用户访问控制 1.修改nginx.conf文件 2.使用hpasswd为用户创建密码文件,并指定到刚才指定的密码文件webck 3.测试…...
React使用antd的图片预览组件,点击哪个图片就预览哪个的设置
使用了官方推荐的相册模式的预览,但是点击预览之后,每次都是从图片列表的第一张开始预览,而不是点击哪张就从哪张开始预览: 所以这里我就封装了一下,对初始化预览的列表进行了逻辑处理: 当点击开始预览的…...
排序的介绍
排序算法介绍 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列 粗暴理解 将杂乱无章的数据元素,通过一定的方法按照关键字顺序排列的过程叫做排序 排序分内部排序和外部排序,若整个排序过程不需…...
appuploader使用教程
转载:appuploader使用教程 目录 问题解决秘籍 登录失败 don’t have access,提示没权限或同意协议 上传后在app管理中心找不到版本提交 不是等待上传状态 提示已经上传过包 上传提示tcpPort or udpPorts错误 上传提示已经有进程在上传 保存上传专用密码提示…...
企业权限管理(七)-权限操作
1. 数据库与表结构 1.1 用户表 1.1.1 用户表信息描述 users 1.1.2 sql语句 CREATE TABLE users( id varchar2(32) default SYS_GUID() PRIMARY KEY, email VARCHAR2(50) UNIQUE NOT NULL, username VARCHAR2(50), PASSWORD VARCHAR2(50), phoneNum VARCHAR2(20), STATUS INT )…...
【深度学习笔记】TensorFlow 常用函数
TensorFlow 提供了一些机器学习中常用的数学函数,并封装在 Module 中,例如 tf.nn Module 提供了神经网络常用的基本运算,tf.math Module 则提供了机器学习中常用的数学函数。本文主要介绍 TensorFlow 深度学习中几个常用函数的定义与用法&…...
函数的递归与迭代
递归经典问题:(自行尝试) 1、汉诺塔问题 2、青蛙跳台阶问题 练习1、 练习2、...
win10 + VS2022 安装opencv C++
最近需要用到C opencv,看了很多帖子都需要自己编译opencv源码。为避免源码编译,可以使用VS来配置opencv C。下面是主要过程: 目录 1. 从官网下载 opencv - Get Started - OpenCV 2. 点击这个exe文件进行安装 3. 配置环境变量 4. VS中的项…...
nginx反向代理及负载均衡的实现
目录 1.nginx反向代理 2.nginx负载均衡 3.nginx反向代理及负载均衡实现 nginx反向代理 4台主机都需要的操作: 两台服务器操作: 两台主机服务器进行测试; nginx负载均衡配置 4.nginx配置其他参数 多虚拟机访问 后端服务器日志中需要…...
Tomcat部署SpringBoot项目
1.修改打包方式 pom.xml 里 加上 <packaging>war</packaging>2.移除内嵌的Tomcat <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope…...
Oracle笔记--dblink
概述 1、database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序。在任何分布式环境里,database都是必要的。另外要注意的是database link是单向的连接。 2、在创建database link的时候,Ora…...
Mapbox加载天地图CGCS2000矢量瓦片地图
1.背景 最近在做天地图的项目,要基于MapBox添加CGCS2000矢量切片数据,但是 Mapbox 只支持web 墨卡托(3857)坐标系的数据。Github有专业用户修改了mapbox-gl的相关代码,支持CGCS2000的切片数据加载,并且修改…...
day3 STM32 GPIO口介绍
GPIO接口简介 通用输入输出接口GPIO是嵌入式系统、单片机开发过程最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使…...
【ElasticSearch】ElasticSearch 内存设置原则
由于ES构建基于lucene,而lucene设计强大之处在于lucene能够很好的利用操作系统内存来缓存索引数据,以提供快速的查询性能。lucene的索引文件segements是存储在单文件中的,并且不可变,对于OS来说,能够很友好地将索引文件保持在cach…...
VUE+ElementUI的表单验证二选一必填项,并且满足条件后清除表单验证提示
上代码 <el-form-item label"出库单号" prop"ecode" ref"ecode" :rules"rules.ecode"><el-input v-model"queryParams.ecode" placeholder"出库单号和出库箱号至少填写一项" clearable style"width…...
NLP 时事和见解【2023】
一、说明 AI的新闻当然不是即时的,但作为趋势和苗头,我们不得不做出自己的决定。比如,一些软件的支持是否持续,哪些现成的软件将不再使用,等等。 图片来自中途 以下是NLPlanet为您选择的有关NLP和AI的每周文章&#x…...
Windows 环境下 Python3 离线安装 cryptography 失败
发布Flask Web项目时,报错缺少Cryptography,于是尝试重新安装该库,但本机没有网络,只支持手动离线安装,尝试了pip、setup.py两种方式安装,结果都报错。。最后使用将安装包拷贝至本机(在其他电脑上安装的sit…...
年轻代频繁GC ParNew导致http变慢
背景介绍 某日下午大约四点多,接到合作方消息,线上环境,我这边维护的某http服务突然大量超时(对方超时时间设置为300ms),我迅速到鹰眼平台开启采样,发现该服务平均QPS到了120左右,平…...
在.NET 6.0中自定义接口路由
在本文中,我们将讨论ASP.NET Core中的新路由。我们将了解什么是接口(endpoints)路由,它是如何工作的,它在哪里使用,以及如何创建自己的路由。 本文主题: 探索接口路由创建自定义接口创建更复杂的接口 名词定义&#…...
Kotlin读写分离CopyOnWriteArrayList
Kotlin读写分离CopyOnWriteArrayList 基于读写分离思想Copy-On-Write(COW)设计的线程安全ArrayList变体,读读共享、写写互斥、读写互斥、写读互斥。读时直接读,不用加锁同步,线程安全。写/删/修改数据时复制一个副本,在新的List副…...
解锁毕业论文新姿势:好写作AI,你的学术“超级外挂”!
在学术的江湖里,毕业论文就像是那终极BOSS,每个学子都得独自面对,挑战重重。选题迷茫、文献浩如烟海、写作卡壳……这些问题是不是让你头疼不已?别怕,今天咱们就来揭秘一个学术界的“超级外挂”——好写作AI࿰…...
PyTorch 3.0静态图≠TensorFlow旧时代:详解torch.compile + DTensor + P2P通信协同优化的4.2倍加速原理
第一章:PyTorch 3.0静态图分布式训练的范式跃迁PyTorch 3.0 引入了原生静态图编译能力(TorchDynamo Inductor 后端深度集成),配合 torch.distributed._composable API,首次实现了“声明式分布式策略”与“编译优化”的…...
Python小白也能学会!3个月蜕变AI开发高手,收藏这份超全路线图!
本文针对程序员学习大模型提供实用路线,强调Python基础即可入门。文章分阶段介绍12步学习计划,从基础理论到应用开发,再到高阶进阶,并给出3个月时间规划与关键提醒。核心观点是:掌握大模型开发并不难,关键在…...
深入解析C++中的CRTP(奇异递归模板模式)
深入解析C中的CRTP(奇异递归模板模式) 在C的模板编程领域,CRTP(Curiously Recurring Template Pattern)作为一种独特的设计模式,为代码复用和类型安全提供了有效的解决方案。本文将探讨CRTP的基本概念、实现…...
10.3处理流程设计-系统设计-人机界面设计
一、流程设计 00:00 1. 流程设计工具 00:25 1)程序流程图 00:32 基本概念: 用图框表示各种操作,独立于程序设计语言,直观清晰结构组成: 仅由顺序、选择和循环三种基本结构组合或嵌套而成应用场景: 可描述…...
从零打造桌面级MicroUSB转TTL调试器:基于CH340N的极简实践
1. 为什么你需要一个桌面级MicroUSB转TTL调试器 作为一个经常和单片机打交道的开发者,我太理解那种弯腰插拔USB线的痛苦了。特别是当你的工作台堆满各种开发板和元器件时,每次调试都要在桌底摸索USB接口,不仅效率低下,还容易把其他…...
如何轻松地使用隔空投送将iPhone内容传输到Android
过去,安卓和苹果用户在设备间共享文件一直很麻烦。然而,如今迎来了一个重大转折点——我们可以使用 AirDrop 将 iPhone 文件传输到安卓设备。尽管这项功能已经发布几天了,但很多人仍然不知道如何从 iPhone 向安卓设备发送 AirDrop 文件。现在…...
技术团队领导一对一沟通指南:打造高效人员管理与反馈机制
技术团队领导一对一沟通指南:打造高效人员管理与反馈机制 【免费下载链接】tlroadmap Тимлид – это ❄️, потому что в каждой компании он уникален и неповторим. 项目地址: https://gitcode.com/gh_m…...
Python自动化神器:键鼠操作记录与回放实战
1. 为什么需要键鼠操作自动化 每天重复点击几百次相同按钮?游戏里需要精准执行固定操作?这些场景下,手动操作不仅效率低下还容易出错。Python的键鼠自动化就像给你的电脑装上了"机械手指",能完美复现所有操作。 我最早用…...
AI人脸隐私卫士企业应用:会议合影自动脱敏合规方案
AI人脸隐私卫士企业应用:会议合影自动脱敏合规方案 关键词:企业隐私合规、会议合影脱敏、人脸自动打码、MediaPipe、本地离线处理、数据安全、GDPR、个人信息保护 摘要:在企业日常运营中,会议、团建、培训等活动产生的合影照片&…...
