nginx服务配置练习
题目:
使用基于账号访问的配置,来配置通过 www.haha.com:8080/custom/index.html 访问时显示“你可以访问”,如果是 www.haha.com:8080/requir/index.html 则提示需要用户名和密码才能访问。
创建身份认证文件
[root@localhost conf.d]# htpasswd -cb passwdfile zhangsan 123456
Adding password for user zhangsan[root@localhost conf.d]# chmod 600 passwdfile
[root@localhost conf.d]# chown nginx:root passwdfile
[root@localhost conf.d]# ll passwdfile
-rw-------. 1 nginx root 47 Mar 24 19:20 passwdfile
以下是这样设置的好处,在这个实验中不这样设置也没有什么影响,为了安全和专业还是养成习惯。权限设置为 600
安全性:权限600表示文件所有者有读和写的权限,而其他用户和组没有任何权限。这样可以确保只有所有者(即nginx用户)能够访问和修改该文件,防止其他用户或进程意外或恶意地读取或修改密码文件,从而保护用户认证信息的安全性,避免敏感信息泄露。所有者设置为 nginx
进程运行身份:Nginx 通常以nginx用户身份运行进程。将passwdfile的所有者设置为nginx,是为了让 Nginx 进程能够以其运行身份(nginx用户)对该文件具有适当的访问权限,以便在需要进行用户身份验证时能够读取密码文件中的信息,而不会因为权限不足导致身份验证失败。如果文件所有者不是nginx,可能会出现 Nginx 进程无法访问密码文件的情况,进而无法正常进行基于账号访问的身份验证功能。
书写配置文件
在 /etc/nginx/conf.d 目录下创建或编辑一个配置文件,如 haha.conf
第一种
server {listen 8080;server_name www.haha.com;root /opt/haha;location /custom/index.html {index index.html;}location /requir/index.html {auth_basic "请输入用户名和密码";auth_basic_user_file /etc/nginx/conf.d/passwdfile;}
}
第一种
[root@localhost conf.d]# echo '你可以进入。'>/opt/haha/custom/index.html
通过html文件来显示你可以进入。
[root@localhost conf.d]# systemctl restart nginx
[root@localhost conf.d]# curl www.haha.com:8080/custom/index.html
你可以进入。
第二种
server {listen 8080;server_name www.haha.com;root /opt/haha;location /custom/index.html {default_type text/plain;return 200 "你可以访问";}location /requir/index.html {auth_basic "请输入用户名和密码";auth_basic_user_file /etc/nginx/conf.d/passwdfile;}
}location /custom/index.html:匹配 /custom/index.html 的请求,使用 default_type text/plain; 指定返回内容的类型为纯文本,return 200 "你可以访问"; 返回状态码 200 和文本 “你可以访问”。
200不能省略在 Nginx 配置中,如果location /custom/index.html块中没有default_type text/plain;这一行配置,可能会产生以下影响:
内容类型识别问题:Nginx 默认会根据文件的扩展名来确定响应的Content - Type头信息。但在这个配置中,由于使用return直接返回文本内容,而不是返回一个实际的文件,Nginx 没有文件扩展名可以参考来确定内容类型。因此,缺少default_type配置可能导致 Nginx 无法正确设置Content - Type头信息,或者将其设置为默认的application/octet - stream(表示二进制流)。这可能会使客户端(如浏览器)在解析和显示内容时出现问题,例如,浏览器可能会将其当作二进制文件下载而不是直接显示文本内容。浏览器行为异常:浏览器根据Content - Type来决定如何处理接收到的数据。如果Content - Type不正确,浏览器可能会采取错误的方式来处理数据。例如,可能会尝试将文本内容当作其他类型的文件进行解析,导致显示乱码或无法正常显示。此外,浏览器的一些安全机制也可能会受到不正确Content - Type的影响,从而对页面的加载和显示产生限制。缓存问题:内容类型对于缓存机制也很重要。不同的内容类型可能有不同的缓存策略。如果Content - Type设置不正确,可能会导致缓存行为异常,例如缓存被不正确地设置或无法被有效利用,从而影响性能。
综上所述,default_type text/plain;这个配置项在这种情况下是很重要的,它确保了 Nginx 正确地设置响应的内容类型,使客户端能够正确地处理和显示返回的文本信息。
重启nginx
在修改配置文件后,需要检查配置文件的语法是否正确:nginx -t如果语法检查通过,重启 Nginx 服务使配置生效:systemctl restart nginx
验证是否符合要求
[root@localhost conf.d]# curl www.haha.com:8080/custom/index.html
你可以访问[root@localhostcurl www.haha.com:8080/requir/index.html
<html>
<head><title>401 Authorization Required</title></head>
<body>
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.20.1</center>
</body>
</html>
[root@localhost conf.d]# curl -u zhangsan:123456 www.haha.com:8080/requir/index.html
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.20.1</center>
</body>
</html>
[root@localhost conf.d]# echo '你已经通过账号密码进入'>/opt/haha/requir/index.html
[root@localhost conf.d]# curl -u zhangsan:123456 www.haha.com:8080/requir/index.html
你已经通过账号密码进入
相关文章:
nginx服务配置练习
题目: 使用基于账号访问的配置,来配置通过 www.haha.com:8080/custom/index.html 访问时显示“你可以访问”,如果是 www.haha.com:8080/requir/index.html 则提示需要用户名和密码才能访问。 创建身份认证文件 [rootlocalhost conf.d]# ht…...
基于TweenMax和SVG的炫酷弹性进度条动画特效
这是一款效果非常炫酷的基于TweenMax和SVG的炫酷弹性进度条动画特效。该弹性进度条特效在点击触发按钮之后,按钮会变形为进度条,然后一个滑块在它上面滑动,就像重物滑过绳子的感觉,非常有创意。 在线演示 使用方法 该弹性进度条效…...
机器视觉工程师如何看机器视觉展会,有些机器视觉兄弟参加机器视觉展会,真的是参加了?重在参与?
作为机器视觉工程师,参加机器视觉展会不仅是了解行业前沿技术的窗口,也是拓展专业网络、寻找解决方案的重要机会。以下是结合展会信息和工程师视角的综合建议: 一、聚焦技术趋势与创新应用 参与技术论坛与研讨会 展会同期的技术论坛是获取行业洞见的核心渠道。例如: 上海展…...
【例6.5】活动选择(信息学奥赛一本通-1323)
【题目描述】 学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使用。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用其他教室。 现在给出n个活动使用礼堂的起…...
ngrep :网络嗅探的利器
在网络安全、渗透测试和系统调试领域,捕获和分析网络流量是不可或缺的技能。虽然像 tcpdump 和 Wireshark 这样的工具广为人知,但有一个轻量级且功能强大的工具却常常被忽视——ngrep。本文将详细介绍 ngrep 的功能、使用方法及其在实际场景中的应用&…...
HCIE是否必须培训?
一、官方政策:不强制培训,但实操门槛高 根据华为认证官网最新规定,HCIE考试不强制要求参加官方培训,考生可直接报名。但需注意以下隐性门槛: 实验环境限制: HCIE实验考试涉及 真机操作(如CE交换…...
python面试高频考点(深度学习大模型方向)
1. python中yeild和return的区别? 2. 介绍一下pytohn中的上下文管理器? 在Python中,上下文管理器(Context Manager) 是一种通过 with 语句管理资源的协议,确保资源(如文件、数据库连接、线程锁…...
六、重学C++—深入探索new delete
上一章节: 五、重学C—类(封装继承)-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/146458436?spm1001.2014.3001.5502 本章节代码: cpp CuiQingCheng/cppstudy - 码云 - 开源中国https://gitee.com/cuiqingcheng/cppstudy/tree/m…...
西门子200smart之modbus_TCP(做主站与第三方设备)通讯
西门子200smart做MODBUS_TCP主站通讯,只有一个指令。设置相关参数即可完成读写操作。整 个过程非常复杂,操作非常严谨。此次,我们使用汇川EASY系列PLC做从站,完成演示。关于汇川案例的演示,详见汇川EASY系列之以太网通讯(MODBUS_TCP做从站)-CSDN博客 关于主站和从站的介…...
Unity代码热更新和资源热更新
知识点来源:人间自有韬哥在,hybridclr,豆包 目录 一、代码热更新1.代码热更新概述2.HybridCLR 二、资源热更新1.资源热更新概述2.AB包2.1.AB包的加载2.2.卸载AB包2.3.加载AB包依赖包2.4.获取MD52.5.生成对比文件2.6.更新AB包 3.Addressable3.1.AssetRef…...
C语言中的共同体(共用体)
一.共用体 1.应用场景: 一种数据可能有多种数据类型,因此我们可以使用共同体来定义这种数据 2.定义格式: union 共同体名字 {数据类型1 成员1;数据类型2 成员2;...数据类型n 成员n; } 3.简单案例: #include<stdio.h> …...
二叉搜索树的最近公共祖先 删除二叉搜索树中的节点 修剪二叉搜索树(Java)
二叉搜索树的最近公共祖先(Java) 重要结论:第一次遇到cur节点是数值在[q, p]区间中,那么cur就是q和p的最近公共祖先(闭区间是因为公共祖先可以是本身) (如果知道这个结论:本题就类似于给定二叉搜索树(BST&…...
于纷扰中寻静谧:正念观照的智慧之旅
在现代社会的快节奏浪潮中,我们仿若被裹挟前行的浮萍,生活的压力与信息的洪流冲刷着内心的宁静,焦虑与迷茫如影随形。而正念观照,恰似一叶扁舟,能引领我们在心灵的海洋中回归自我,探寻那片澄澈之境。 正念…...
Java并发编程面试汇总
Java并发编程 一、 基础概念1. 进程与线程的区别是什么?2. 创建线程的几种方式?3. 线程的生命周期(状态)有哪些?4. 什么是守护线程(Daemon Thread)?5. 线程优先级(Priori…...
计算机考研复试机试-考前速记
考前速记 知识点 1. 链表篇 1. 循环链表报数3,输出最后一个报数编号 #include <iostream> using namespace std;typedef struct Node {int no;struct Node* next; }Node, *NodeList;void createNodeListTail(NodeList&L, int n) {L (Node*)malloc(siz…...
环境评价分析中土地利用现状图的制作方法
在环境评价中,土地利用现状图是重要的基础图件,用于分析项目区域的土地利用类型、分布格局及其生态环境特征。 以下是制作土地利用现状图的详细步骤和方法: 一、前期准备工作 确定制图范围和比例尺 根据评价范围确定制图区域边界 常用比例…...
SpringMVC 请求处理详解
SpringMVC 是 Spring 框架中用于构建 Web 应用程序的模块,它基于 MVC(Model-View-Controller)设计模式,能够将业务逻辑、数据和显示分离,从而提高代码的可维护性和可扩展性。本文将详细介绍 SpringMVC 中请求处理的原理…...
编程题记录3
九宫幻方 题目链接:https://www.lanqiao.cn/problems/100/learning/?page1&first_category_id1&second_category_id3&tags%E7%9C%81%E8%B5%9B&tag_relationintersection 先旋转、镜像得到所有的情况,可以发现情况是可以暴力得出的。…...
sql语句给表添加一个递增列
SSMS–》视图-》数据库(表)-》新建查询 ALTER TABLE [表名] DROP COLUMN ID ALTER TABLE [表名] ADD ID INT IDENTITY(1,1)执行完以上操作,会在表的最后一列添加一个自增字段 接下来如何把最后一个字段放到第一个字段呢? 假如sqlserver 表test 有以下…...
Java面试黄金宝典10
1. Tomcat 的负载均衡方式 定义 Tomcat 的负载均衡是将客户端的请求均匀分配到多个 Tomcat 实例上,以提高系统的处理能力和可用性。常见的负载均衡方式有以下几种: 硬件负载均衡 原理:采用专门的硬件设备,如 F5 Big - IP、Cisco…...
vue java 实现大地图切片上传
文章目录 一、项目背景二、页面三、代码1.前端2.mock-i18n.js文件3.xx.js文件定义方法4.配置文件 application.properties5.后端方法 四、易错点易错点1:前端要进行分片切割,然后再分片上传。易错点2:后端配置文件要配置。易错点3:…...
langchain+ollama+deepseek的部署(win)
ANACONDA 安装 官网:Download Anaconda Distribution | Anaconda 配置系统环境 在系统变量中配置 检查是否配置成功 通过 cmd 窗口输入: conda info 如图:表示成功 配置你的虚拟环境 二、安装 ollama allama 安装 官网地址:…...
deepseek实战教程-第四篇开放平台接口文档使用
第二篇讲解了如何本地安装大模型,然后编写一个基于jsspringboot的项目,通过页面实现对话的功能。实际上,上面的demo用到是deepseek提供的接口,那么deepseek共提供了多少接口呢?这就要讨论到deepseek的接口库了…...
Android第六次面试总结(Java设计模式二)
在 Android 开发里,ListView 和 RecyclerView 是常用的视图组件,用于展示大量数据列表。不过,这些视图组件本身无法直接展示原始数据源,需要借助 Adapter(适配器)把数据源适配成视图能够展示的数据…...
一站式电脑工具箱,功能全面且实用
小明工具箱是一款集成了系统设置、维护工具、实用工具、图像处理等四大类工具的电脑工具箱,涵盖了上百种实用工具,能够满足用户在文件管理、文本处理、系统优化、图像处理等多方面的需求。 初次使用,需双击软件,便会自动将工具解压…...
那些正常的动态规划
文章目录 前言动态规划到底是啥? 线性dp最长上升子序列子集和子序列和子串的区别内容分析 最大上升子序列例题1——[NOIP2004 提高组] 合唱队形分析 最长公共子序列最长公共子串 平面dp例题2——[NOIP2000 提高组] 方格取数分析 例题3——[NOIP2008 提高组] 传纸条分…...
Opencv计算机视觉编程攻略-第二节 图像像素操作
第二节 图像像素操作 1.访问像素值2.用指针扫描图像3.扫描图像并访问相邻像素4.实现简单的图像运算5.图像重映射 1.访问像素值 以椒盐噪声为例展示像素值访问的几种方法 void salt(cv::Mat image, int n) {// C11 random number generatorstd::default_random_engine generat…...
华为交换相关
端口模式 (1)access:只能属于单个VLAN,一般用于连接计算机端口 (2)trunk:端口允许多个VLAN通过,可以接收和发送多个VLAN报文,默认情况下只有管理VLAN不携带标签信息 &…...
Chrome Performance 面板完全指南:从卡顿到丝滑的终极调试术
1.写在前面 前端性能调试是优化网页加载速度和运行效率的关键步骤,Chrome DevTools 的 Performance 面板 是核心工具; 2.Performance 面板使用步骤 ★ 基础 打开面板 在 Chrome 中按 F12 → 切换到 Performance 标签页。 开始录制 方式一:点击 ⚫️ 圆…...
idea中快速注释函数
在IntelliJ IDEA中,有多种方法可以快速注释函数。 使用快捷键 你可以使用以下快捷键来快速注释函数[3]: 行注释:使用Ctrl/(Windows系统)或Command/(Mac系统)可以在当前行前添加或删除单行注释…...
