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

Web服务器实战

网站需求

1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!!
2.给该公司创建三个网站目录分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student 网站访问学生信息,www.openlab.com/data网站访问教学资料
www.openlab.com/money网站访问缴费网站。
3.要求:
(1)学生信息网站只有song和tian两人可以访问,其他网站所有用户用能访问。
(2)访问缴费网站实现数据加密基于https访问。

准备

1.需要两台Linux虚拟机,一台为服务端server,另一台为客户端client
server IPV4:192.168.110.136/24                client  IPV4:192.168.110.134/24
2.服务端需要关闭防火墙和Linux的安全服务seLinux
[root@server ~]# systemctl stop firewalld
[root@server ~]# setenforce 0
[root@server ~]# getenforce 
Permissive

3.安装httpd,mol_ssl
[root@server ~]# yum install -y httpd mod_ssl

配置

1.客户端通过IP地址可以正常访问服务端内容

[root@server ~]# mkdir -v /openlab/                       #创建目录
已创建目录 '/openlab/' 
[root@server ~]# echo "welcome to openlab!!!" > /openlab/index.html  #写入内容 
[root@server ~]# vim /etc/httpd/conf.d/openlab.conf            #打开httpd的额外参数配置文件 

<Directory "/openlab/">
        Options Indexes FollowSymLinks                                       
        AllowOverride None  

        Require all granted                 
</Directory>

<VirtualHost 192.168.110.136:80>
    ServerAdmin admin@outlook.com
    DocumentRoot "/openlab/"
    ServerName www.openlab.com
</VirtualHost>
[root@server ~]# httpd -t               #语法检测
Syntax OK
[root@server ~]# systemctl restart httpd         #重启服务

客户端访问

[root@client ~]# curl 192.168.110.136
welcome to openlab!!!

2.搭建学生信息,教学资料,缴费网站页面

[root@server ~]# mkdir /openlab/{student,data,money} -v
mkdir: 已创建目录 '/openlab/student'
mkdir: 已创建目录 '/openlab/data'
mkdir: 已创建目录 '/openlab/money'

[root@server ~]# echo "学生信息" > /openlab/student/index.html      #写入内容
[root@server ~]# echo "教育网站" > /openlab/data/index.html           #写入内容
[root@server ~]# echo "缴费网站" > /openlab/money/index.html       #写入内容

首先配置student页面只有song和tian用户访问

[root@server ~]# htpasswd -c /etc/httpd/conf.d/httpd song    #创建sond的身份验证文件
New password: 
Re-type new password: 
Adding password for user song
[root@server ~]# htpasswd /etc/httpd/conf.d/httpd tian      #添加tain的身份验证文件
New password: 
Re-type new password: 
Adding password for user tian

[root@server ~]# cat /etc/httpd/conf.d/httpd
song:$apr1$XWPO6i0/$hNsM5W/Gx3ukFsPokAEEH.
tian:$apr1$SSblX1SO$YGyWDIuzZmCuLfhBnqn6m1

[root@server ~]# vim /etc/httpd/conf.d/openlab.conf    #在额外参数配置文件添加内容

<VirtualHost 192.168.110.136:80>
    ServerAdmin admin@outlook.com
    DocumentRoot "/openlab/student"
    ServerName www.openlab.com
</VirtualHost>
<Directory "/openlab/student">
        Options Indexes FollowSymLinks
        AllowOverride None
        AuthType Basic
        AuthName "Restricted Files"
        AuthUserFile "/etc/httpd/conf.d/httpd "    #身份验证文件的路径
        Require user song tian                         #允许访问的用户

</Directory>
[root@server ~]# httpd -t                             #语法检测
Syntax OK
[root@server ~]# systemctl restart httpd   #重启服务

客户端访问

[root@client ~]# curl 192.168.110.136/student/ -u song
Enter host password for user 'song':
学生信息
[root@client ~]# curl 192.168.110.136/student/ -u tian
Enter host password for user 'tian':
学生信息


其他用户访问

配置教学资料网站所有用户都可访问

[root@server ~]# vim /etc/httpd/conf.d/openlab.conf   #打开配置文件添加内容

<Directory "/openlab/data/">
Options Indexes FollowSymLinks
  AllowOverride None
Require all granted
</Directory>

<VirtualHost 192.168.110.136:80>
    ServerAdmin admin@outlook.com
    DocumentRoot "/openlab/data/"
    ServerName www.openlab.com
</VirtualHost>
[root@server ~]# httpd -t
Syntax OK
[root@server ~]# systemctl restart httpd
 

客户端访问

[root@client ~]# curl 192.168.110.136/data/
教育网站

配置缴费网站实现数据加密基于https访问

[root@server ~]# cd /etc/pki/tls/certs/                         #存放着一些证书文件

[root@server certs]# openssl genrsa 2048 >> openlab.key    #生成私钥文件
[root@server certs]# openssl req -utf8 -new -key openlab.key -x509 -days 100 -out openlab.crt     #生成证书
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:SN         #国家
State or Province Name (full name) []:CN     #省份
Locality Name (eg, city) [Default City]:XI'AN        #城市     
Organization Name (eg, company) [Default Company Ltd]:OPENLAB    #企业
Organizational Unit Name (eg, section) []:RHCE        #部门
Common Name (eg, your name or your server's hostname) []:www.openlab.com 域名
Email Address []:admi@outlook.com            #邮件
[root@server ~]# vim /etc/httpd/conf.d/openlab.conf

<VirtualHost 192.168.110.136:443>
    DocumentRoot "/openlab/money/"
    ServerName www.openlab.com
    SSLEngine on
    SSLCertificateFile "/etc/pki/tls/certs/openlab.crt"
    SSLCertificateKeyFile "/etc/pki/tls/certs/openlab.key"
</VirtualHost>

<Directory "/openlab/money/">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
[root@server ~]# httpd -t
Syntax OK
[root@server ~]# systemctl restart httpd

客户端访问

[root@client ~]# curl https://192.168.110.136 -k    #-k为忽略证书访问
缴费网站
[root@client ~]# curl 192.168.110.136/money/ -k 
缴费网站

/etc/httpd/conf.d/openlab.conf配置文件最终内容

3.客户端通过域名可以正常访问服务端内容

在没有DNS域名解析服务器的情况下可以使用本机hosts文件,hosts文件其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库"

在Linux下hosts文件地址为/etc/host

[root@client ~]# vim /etc/hosts                        #写入内容

192.168.110.136        www.openlab.com

[root@client ~]# curl www.openlab.com
welcome to openlab!!!
[root@client ~]# curl www.openlab.com/student/ -u song
Enter host password for user 'song':
学生信息
[root@client ~]# curl www.openlab.com/student/ -u tian
Enter host password for user 'tian':
学生信息
[root@client ~]# curl www.openlab.com/data/
教育网站
[root@client ~]# curl https://www.openlab.com -k
缴费网站
[root@client ~]# curl www.openlab.com/money/ -k
缴费网站

在Windows客户端下hosts文件路径为C:\Windows\System32\drivers\etc\hosts  

添加内容,浏览器访问即可,因为www.openlab.com该域名已存在所以浏览器无法访问

相关文章:

Web服务器实战

网站需求 1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个网站目录分别显示学生信息&#xff0c;教学资料和缴费网站&#xff0c;基于www.openlab.com/student 网站访问学生信息&#xff0c;www.openlab.com/data网站访问教学资料 www…...

2021年电工杯数学建模B题光伏建筑一体化板块指数发展趋势分析及预测求解全过程论文及程序

2021年电工杯数学建模 B题 光伏建筑一体化板块指数发展趋势分析及预测 原题再现&#xff1a; 国家《第十四个五年规划和 2035 年远景目标纲要》中提出&#xff0c;将 2030 年实现“碳达峰”与 2060 年实现“碳中和”作为我国应对全球气候变暖的一个重要远景目标。光伏建筑一体…...

pandas教程:Essential Functionality 索引 过滤 映射 排序

文章目录 5.2 Essential Functionality&#xff08;主要功能&#xff09;1 Reindexing&#xff08;重新索引&#xff09;2 Dropping Entries from an Axis (按轴删除记录)3 Indexing, Selection, and Filtering(索引&#xff0c;选择&#xff0c;过滤)Selection with loc and i…...

pyspark连接mysql数据库报错

使用pyspark连接mysql数据库代码如下 spark_conf SparkConf().setAppName("MyApp").setMaster("local")spark SparkSession.builder.config(confspark_conf).getOrCreate()url "jdbc:mysql://localhost:3306/test?useUnicodetrue&characterE…...

HK WEB3 MONTH Polkadot Hong Kong 火热报名中!

HK Web3 Month 11月除了香港金融科技周外&#xff0c;HK Web3 Month又是一大盛事&#xff0c;从10月29日开始开幕直到11月18日结束。此次将齐聚世界各地的Web3产业从业者、开发者、社群成员和学生来参与本次盛会。除外&#xff0c;超过75位产业知名的讲者与超过50场工作坊将为…...

“第六十三天”

这两天怎么做的这么别扭&#xff0c;为什么我的vs 的strlen函数包括终止字符了&#xff1b; 哦哦&#xff0c;明白了&#xff0c;fgets函数读取在未达到指定字长&#xff0c;或者遇见空白符之前&#xff0c;会读取前面的所有字符&#xff0c;所以会读取换行符&#xff0c;而get…...

常用排序算法实现

时间复杂度 O ( 1 ) O(1) O(1) void func1(int n){int count 100;count; } void func2(int n){int count 100;for(int i 0; i < count;i){} } int func3(int n){return n; }O ( n ) O(n) O(n) void func1(int n){int count 100;for(int i 0; i < n;i){count;} …...

使用表单登录方法模拟登录通信人家园,要求发送登录请求后打印出来的用户名下的用户组类别

目标网站&#xff1a;https://www.txrjy.com/forum.php 一、进入网页&#xff0c;右键“检查” 二、输入用户名和密码&#xff0c;点击“登录”&#xff0c;点击“Network”,上划加载项找到蓝色框中的内容 三、点击第一个加载项&#xff0c;找到URL 四、相关代码&#xff1a; …...

Redis 的缓存击穿,穿透,雪崩及其解决方案

1 缓存穿透 什么是缓存穿透&#xff1f; 大量请求的 key 是不合理的&#xff0c;根本不存在于缓存中&#xff0c;也不存在于数据库中 。导致这些请求直接到了数据库上&#xff0c;根本没有经过缓存这一层&#xff0c;对数据库造成了巨大的压力&#xff0c;可能直接就被这么多…...

JWT原理分析——JWT

了解为什么会有JWT的出现&#xff1f; 首先不得不提到一个知识叫做跨域身份验证&#xff0c;JWT的出现就是为了更好的解决这个问题&#xff0c;但是在没有JWT的时候&#xff0c;我们一般怎么做呢&#xff1f;一般使用Cookie和Session&#xff0c;流程大体如下所示&#xff1a;…...

Jprofiler/ VisualVM 定位内存溢出OOM

下载,接受协议下一步下一步,最后选择与IDEA集成OK ej-technologies - Java APM, Java Profiler, Java Installer Builder IDEA配置参数: # F:\study\spring-test\dump 为dump文件保存路径-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPathF:\study\spring-test\dumppackage …...

NOIP2023模拟13联测34 competition

题目大意 有一场题目数量为 m m m的比赛&#xff0c;有一个团队想要来参加。 这个团队有 n n n个选手&#xff0c;编号为 i i i的选手能做第 l i ∼ r i l_i \sim r_i li​∼ri​道题&#xff0c;每题他都有 100 % 100\% 100%的概率做出来。 这个团队会随机派出一只队伍来参…...

Intel oneAPI笔记(2)--jupyter官方文档(oneAPI_Intro)学习笔记

前言 本文是对jupyterlab中oneAPI_Essentials/01_oneAPI_Intro文档的学习记录&#xff0c;包含对SYCL、DPC extends SYCL、oneAPI Programming models等介绍和SYCL代码的初步演示等内容 oneAPI编程模型综述 oneAPI编程模型提供了一个全面而统一的开发人员工具组合&#xff0…...

用 QT 开发软件会吃官司吗?

之前我写过我们现在使用 QT 开发跨平台软件&#xff0c;有朋友留言&#xff0c;QT 虽好&#xff0c;当心收到律师函。今天就来聊聊这个话题。 在开始这个话题之前&#xff0c;我们先把使用盗版 QT 排除在外&#xff0c;只讨论在合法且遵从版权协议的前提下&#xff0c;能否使用…...

远程运维用什么软件?可以保障更安全?

远程运维顾名思义就是通过远程的方式IT设备等运行、维护。远程运维适用场景包含因疫情居家办公&#xff0c;包含放假期间出现运维故障远程解决&#xff0c;包含项目太远需要远程操作等等。但远程运维过程存在一定风险&#xff0c;安全性无法保障&#xff0c;所以一定要选择靠谱…...

数据结构与算法C语言版学习笔记(2)-线性表、顺序存储结构的线性表

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 数据结构部分的知识框架一、线性表的定义和特点1.定义2.特点 二、线性表的实际案例引入1.案例一&#xff1a;多项式的加减乘除2.案例二&#xff1a;当多项式是稀疏多…...

【vite】vite.defineConfig is not a function/npm无法安装第三方包问题

当使用vite命令 npm init vite-app 项目名称时配置 import vue from vitejs/plugin-vueexport default defineConfig({plugins: [vue()] })会报错vite.defineConfig is not a function 还有就是npm下载的时候也会报错 原因vite插件vitejs/plugin-vue和vite版本问题 解决 调…...

234. 回文链表 --力扣 --JAVA

题目 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 解题思路 判断链表是否为回文链表取决于链表中各个节点的值&#xff0c;所以可以通过存储各节点的值进行对比判断&…...

【JAVA学习笔记】65 - 文件类,IO流--节点流、处理流、对象流、转换流、打印流

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter19/src/com/yinhai 文件 一、文件&#xff0c;流 文件,对我们并不陌生&#xff0c;文件是保存数据的地方,比如大家经常使用的word文档,txt文件,excel文件..都是文件。它既可以保存一张图片…...

R语言 复习 习题图片

这是日天土申哥不知道从哪淘来的R语言复习知识点图片&#xff0c;大部分内容都是课后习题的答案 加油吧&#xff0c;骚年&#xff0c;考个好分数...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...