配置 Web 服务器练习

一、要求

1.通过https://ip 可以访问到网站首页

2.通过 https://ip/private/ 实现用户访问控制,仅允许已经添加的 tom,jerry 能够访问到 private 子路径的界面

3.通过 https://ip/vrit/ 实现能够访问到将系统 /nginx/virt 目录下的网页文件(/nginx/virt/index.html) 

二、实验

1.通过https://ip 可以访问到网站首页

① 首先关闭防火墙以及 selinux

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

② 启动 nginx 程序发现显示未找到 nginx.service,在下载 nginx 软件包之前需先进行编辑 yum 源配置文件以及挂载磁盘操作

[root@localhost ~]# vim /etc/yum.repos.d/base.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.

③ 下载 nginx 软件包并启动

[root@localhost ~]# dnf install nginx -y
[root@localhost ~]# systemctl start nginx

④ 编辑 nginx 配置文件,添加 server 模块

[root@localhost ~]# vim /etc/nginx/conf.d/ip.conf

⑤ 按照配置文件创建资源文件

[root@localhost ~]# mkdir -pv /www
mkdir: 已创建目录 '/www'
[root@localhost ~]# echo this is www > /www/index.html   # 写入内容

⑥ 使用 openssl 工具创建一个新的 RSA 私钥,并生成一个基于该私钥的自签名 X509 证书,用于加密网络通信(通常用于网站启用 HTTPS 协议)。以下信息可随意填写,注意“陕西为shaanxi”

[root@localhost ~]# openssl req -newkey rsa:4096  -nodes -keyout  /etc/pki/tls/private/openlab.key -x509 -days 365 -out /etc/pki/tls/certs/openlab.crt 

⑦ 重启服务,提供信息响应(加载新的配置)

[root@localhost ~]# systemctl restart nginx
[root@localhost ~]# curl https://192.168.96.142 -k  # 加k表示在进行 HTTPS 请求时,跳过对服务器 SSL/TLS 证书的验证

2.通过 https://ip/private/ 实现用户访问控制,仅允许已经添加的 tom,jerry 能够访问到 private 子路径的界面

① 修改 nginx 配置,添加 location 模块

[root@localhost ~]# vim /etc/nginx/conf.d/ip.conf

② 按照配置文件创建资源文件

[root@localhost ~]# mkdir -pv /private
mkdir: 已创建目录 '/private'
[root@localhost ~]# echo this is private > /private/index.html

③ 先进行磁盘挂载,在进行下载操作

[root@localhost ~]# mount /dev/sr0 /mnt     # 磁盘挂载
[root@localhost ~]# yum provides htpasswd     # 查询htpasswd软件包提供了指定的文件
[root@localhost ~]# yum install httpd-tools    # 下载httpd-tools软件包

④ 更新 HTTP 基本认证的用户密码文件

[root@localhost ~]# htpasswd -c /etc/nginx/users tom
New password: 
Re-type new password: 
Adding password for user tom
[root@localhost ~]# htpasswd /etc/nginx/users jerry
New password: 
Re-type new password: 
Adding password for user jerry

⑤ 重启程序并测试结果

[root@localhost ~]# systemctl restart nginx
[root@localhost ~]# curl https://192.168.96.142/private/ -u tom -k
[root@localhost ~]# curl https://192.168.96.142/private/ -u jerry -k

3.通过 https://ip/vrit/ 实现能够访问到将系统 /nginx/virt 目录下的网页文件(/nginx/virt/index.html) 

① 编辑 nginx 配置文件

[root@localhost ~]# vim /etc/nginx/conf.d/ip.conf

② 按照配置文件创建资源文件

[root@localhost ~]# mkdir -pv /nginx/virt
mkdir: 已创建目录 '/nginx/virt'
[root@localhost ~]# echo this is virt > /nginx/virt/index.html

③ 重启程序并测试结果

[root@localhost ~]# systemctl restart nginx
[root@localhost ~]# curl https://192.168.96.142/virt/ -k

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

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

相关文章

MySQL索引详解(下)(SQL性能分析,索引使用)

索引是MySQL性能优化的核心,但如何精准分析查询瓶颈、合理设计索引,是开发者必须掌握的技能。本文结合实战案例,系统讲解SQL性能分析工具链与索引使用技巧,帮助读者构建高性能数据库系统。 一、SQL性能分析:从宏观到微…

招行数字金融挑战赛数据赛道赛题一

赛题描述:根据提供的用户行为数据,选手需要分析用户行为特征与广告内容的匹配关系,准确预测用户对测试集广告的点击情况,通过AUC计算得分。 得分0.6120,排名60。 尝试了很多模型都没有能够提升效果,好奇大…

ORB-SLAM3和VINS-MONO的对比

直接给总结,整体上orbslam3(仅考虑带imu)在初始化阶段是松耦合,localmap和全局地图优化是紧耦合。而vins mono则是全程紧耦合。然后两者最大的区别就在于vins mono其实没有对地图点进行优化,为了轻量化,它一…

安装typescript时,npm install -g typescript报错

删除C:\Users\用户\下的.npmrc文件,如果你的没有,看是不是因为将隐藏的项目勾选上了,然后去掉勾选。 重新输入

[GESP202503 四级] 二阶矩阵c++

题目描述 小 A 有一个 n 行 m 列的矩阵 A。 小 A 认为一个 22 的矩阵 D 是好的,当且仅当 。其中 表示矩阵 D 的第 i 行第 j 列的元素。 小 A 想知道 A 中有多少个好的子矩阵。 输入 第一行,两个正整数 n,m。 接下来 n 行,每行 m 个整数…

基于flask+pandas+csv的报表实现

基于大模型根据提示词去写SQL执行SQL返回结果输出报表技术上可行的,但为啥还要基于pandas去实现呢? 原因有以下几点: 1、大模型无法满足实时性输出报表的需求; 2、使用大模型比较适合数据量比较大的场景,大模型主要…

Java学习笔记(对象)

一、对象本质 状态(State):通过成员变量(Field)描述 行为(Behavior):通过成员方法(Method)实现 class Person {String name;int age;void eat() {System.o…

Qt学习Day0:Qt简介

0. 关于Qt Qt是C的实践课,之前在C中学习的语法可以有具体的应用场景。Qt的代码量很大,不要死记硬背,学会查询文档的能力更加重要。 建议提升一下相关单词的储备量: 1. Qt是什么? Qt是一个基于C语言的图形用户界面&a…

React知识框架

一、核心概念 1. 组件化开发 核心思想:将 UI 拆分为独立、可复用的组件(函数组件/类组件)。组件特性:props(接收参数)、state(组件状态)、生命周期(类组件特有&#xf…

Django之账号登录及权限管理

账号登录及权限管理 目录 1.登录功能 2.退出登录 3.权限管理 4.代码展示合集 这篇文章, 会讲到如何实现账号登录。账号就是我们上一篇文章写的账号管理功能, 就使用那里面已经创建好的账号。这一次登录, 我们分为三种角色, 分别是员工, 领导, 管理员。不同的角色, 登录进去…

[学习]RTKLib详解:convkml.c、convrnx.c与geoid.c

本文是 RTKLlib详解 系列文章的一篇,目前该系列文章还在持续总结写作中,以发表的如下,有兴趣的可以翻阅。 [学习] RTKlib详解:功能、工具与源码结构解析 [学习]RTKLib详解:pntpos.c与postpos.c [学习]RTKLib详解&…

java 破解aspose.words 18.6 使用

资源包&#xff1a;https://download.csdn.net/download/qq_36598111/90787167 jar包是破解过的&#xff0c;直接可以使用。 引入jar&#xff0c;要引入本地的&#xff0c;不要直接引入仓库的 <dependency><groupId>com.aspose</groupId><artifactId>…

vue使用rules实现表单校验——校验用户名和密码

编写校验规则 常规校验 const rules {username: [{ required: true, message: 请输入用户名, trigger: blur },{ min: 5, max: 16, message: 长度在 5 到 16 个字符, trigger: blur }],password: [{ required: true, message: 请输入密码, trigger: blur },{ min: 5, max: 1…

宝塔服务安装使用的保姆级教程

宝塔介绍&#xff1a; 宝塔面板&#xff08;BT Panel&#xff09; 是一款 国产的服务器运维管理面板&#xff0c;主要用于简化 Linux/Windows 服务器的网站、数据库、FTP、防火墙等管理操作。它通过图形化界面&#xff08;Web端&#xff09;和命令行工具&#xff08;bt 命令&a…

数字化转型-4A架构之数据架构

4A架构系列文章 数字化转型-4A架构&#xff08;业务架构、应用架构、数据架构、技术架构&#xff09; 数字化转型-4A架构之业务架构 数字化转型-4A架构之应用架构 数字化转型-4A架构之数据架构 数字化转型-4A架构之技术架构 数据架构 Data Architecture&#xff08;DA&…

每日脚本 5.11 - 进制转换和ascii字符

前置知识 python中各个进制的开头 二进制 &#xff1a; 0b 八进制 &#xff1a; 0o 十六进制 : 0x 进制转换函数 &#xff1a; bin() 转为2进制 oct() 转换为八进制的函数 hex() 转换为16进制的函数 ascii码和字符之间的转换 &#xff1a; chr(97) 码转为字符 …

Vulnhub Lazysysadmin靶机攻击实战(一)

导语   靶机下载地址 https://download.vulnhub.com/lazysysadmin/Lazysysadmin.zip   靶机信息地址 https://www.vulnhub.com/entry/lazysysadmin-1,205/ 文章目录 信息收集扫描路径提权其他思路探索其他方式找密码总结下载安装好靶机之后启动虚拟机如下所示。 信息收集 我…

【DB2】DB2启动失败报错SQL1042C

在本地某次启动db2时报错SQL1042C&#xff0c;具体报错如下 [db2inst1standby ~]$ db2start 05/07/2025 16:32:53 0 0 SQL1042C An unexpected system error occurred. SQL1032N No start database manager command was issued. SQLSTATE57019在网上百度到说是需要…

Python中的re库详细用法与代码解析

目录 1. 前言 2. 正则表达式的基本概念 2.1 什么是正则表达式&#xff1f; 2.2 常用元字符 3. re库的适应场景 3.1 验证用户输入 3.2 从文本中提取信息 3.3 文本替换与格式化 3.4 分割复杂字符串 3.5 数据清洗与预处理 4. re库的核心功能详解 4.1 re.match()&#…

蓝桥杯2025年第十六届省赛真题-水质检测

C语言代码&#xff1a; #include <stdio.h> #include <string.h>#define MAX_LEN 1000000int main() {char a[MAX_LEN 1], b[MAX_LEN 1];// 使用 scanf 读取字符数组scanf("%s", a);scanf("%s", b);int ans 0;int pre -1;int state -1;i…