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
Permissive3.安装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 NoneRequire 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.给该公司创建三个网站目录分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student 网站访问学生信息,www.openlab.com/data网站访问教学资料 www…...
2021年电工杯数学建模B题光伏建筑一体化板块指数发展趋势分析及预测求解全过程论文及程序
2021年电工杯数学建模 B题 光伏建筑一体化板块指数发展趋势分析及预测 原题再现: 国家《第十四个五年规划和 2035 年远景目标纲要》中提出,将 2030 年实现“碳达峰”与 2060 年实现“碳中和”作为我国应对全球气候变暖的一个重要远景目标。光伏建筑一体…...
pandas教程:Essential Functionality 索引 过滤 映射 排序
文章目录 5.2 Essential Functionality(主要功能)1 Reindexing(重新索引)2 Dropping Entries from an Axis (按轴删除记录)3 Indexing, Selection, and Filtering(索引,选择,过滤)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月除了香港金融科技周外,HK Web3 Month又是一大盛事,从10月29日开始开幕直到11月18日结束。此次将齐聚世界各地的Web3产业从业者、开发者、社群成员和学生来参与本次盛会。除外,超过75位产业知名的讲者与超过50场工作坊将为…...
“第六十三天”
这两天怎么做的这么别扭,为什么我的vs 的strlen函数包括终止字符了; 哦哦,明白了,fgets函数读取在未达到指定字长,或者遇见空白符之前,会读取前面的所有字符,所以会读取换行符,而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;} …...
使用表单登录方法模拟登录通信人家园,要求发送登录请求后打印出来的用户名下的用户组类别
目标网站:https://www.txrjy.com/forum.php 一、进入网页,右键“检查” 二、输入用户名和密码,点击“登录”,点击“Network”,上划加载项找到蓝色框中的内容 三、点击第一个加载项,找到URL 四、相关代码: …...
Redis 的缓存击穿,穿透,雪崩及其解决方案
1 缓存穿透 什么是缓存穿透? 大量请求的 key 是不合理的,根本不存在于缓存中,也不存在于数据库中 。导致这些请求直接到了数据库上,根本没有经过缓存这一层,对数据库造成了巨大的压力,可能直接就被这么多…...
JWT原理分析——JWT
了解为什么会有JWT的出现? 首先不得不提到一个知识叫做跨域身份验证,JWT的出现就是为了更好的解决这个问题,但是在没有JWT的时候,我们一般怎么做呢?一般使用Cookie和Session,流程大体如下所示:…...
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的比赛,有一个团队想要来参加。 这个团队有 n n n个选手,编号为 i i i的选手能做第 l i ∼ r i l_i \sim r_i li∼ri道题,每题他都有 100 % 100\% 100%的概率做出来。 这个团队会随机派出一只队伍来参…...
Intel oneAPI笔记(2)--jupyter官方文档(oneAPI_Intro)学习笔记
前言 本文是对jupyterlab中oneAPI_Essentials/01_oneAPI_Intro文档的学习记录,包含对SYCL、DPC extends SYCL、oneAPI Programming models等介绍和SYCL代码的初步演示等内容 oneAPI编程模型综述 oneAPI编程模型提供了一个全面而统一的开发人员工具组合࿰…...
用 QT 开发软件会吃官司吗?
之前我写过我们现在使用 QT 开发跨平台软件,有朋友留言,QT 虽好,当心收到律师函。今天就来聊聊这个话题。 在开始这个话题之前,我们先把使用盗版 QT 排除在外,只讨论在合法且遵从版权协议的前提下,能否使用…...
远程运维用什么软件?可以保障更安全?
远程运维顾名思义就是通过远程的方式IT设备等运行、维护。远程运维适用场景包含因疫情居家办公,包含放假期间出现运维故障远程解决,包含项目太远需要远程操作等等。但远程运维过程存在一定风险,安全性无法保障,所以一定要选择靠谱…...
数据结构与算法C语言版学习笔记(2)-线性表、顺序存储结构的线性表
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 数据结构部分的知识框架一、线性表的定义和特点1.定义2.特点 二、线性表的实际案例引入1.案例一:多项式的加减乘除2.案例二:当多项式是稀疏多…...
【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 ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 解题思路 判断链表是否为回文链表取决于链表中各个节点的值,所以可以通过存储各节点的值进行对比判断&…...
【JAVA学习笔记】65 - 文件类,IO流--节点流、处理流、对象流、转换流、打印流
项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter19/src/com/yinhai 文件 一、文件,流 文件,对我们并不陌生,文件是保存数据的地方,比如大家经常使用的word文档,txt文件,excel文件..都是文件。它既可以保存一张图片…...
R语言 复习 习题图片
这是日天土申哥不知道从哪淘来的R语言复习知识点图片,大部分内容都是课后习题的答案 加油吧,骚年,考个好分数...
FUTURE POLICE模型ComfyUI可视化工作流搭建指南
FUTURE POLICE模型ComfyUI可视化工作流搭建指南 你是不是也对那些能生成未来感、赛博朋克风格图像的AI模型感到好奇?但一看到复杂的代码和命令行,就觉得头大,不知道从何下手。今天,我们就来聊聊一个特别酷的解决方案——用ComfyU…...
终极指南:gradle-retrolambda在大型项目中的性能优化与稳定性保障策略
终极指南:gradle-retrolambda在大型项目中的性能优化与稳定性保障策略 【免费下载链接】gradle-retrolambda evant/gradle-retrolambda: gradle-retrolambda 插件允许开发者在 Android 项目中使用 Java 8 的 Lambda 表达式和其他现代语言特性,并通过 Ret…...
域名 WHOIS 信息对于 SEO 优化有什么作用
域名 WHOIS 信息对于 SEO 优化有什么作用 在当今互联网时代,搜索引擎优化(SEO)已经成为了每个网站运营者必须掌握的技能之一。其中,域名 WHOIS 信息也扮演了一定的角色。许多人可能对这一点并不十分了解,本文将详细探…...
飞书机器人集成实战:OpenClaw+Phi-3-vision-128k-instruct打造智能问答助手
飞书机器人集成实战:OpenClawPhi-3-vision-128k-instruct打造智能问答助手 1. 为什么选择这个技术组合? 上周我接到一个产品经理的需求——希望能通过飞书直接发送产品截图,自动获得功能分析报告。传统方案需要开发整套服务端逻辑ÿ…...
当企业拥有了创新的 “上帝视角”,会发生什么?
当企业拥有了创新的 “上帝视角”,会发生什么?--研企配 AI 大数据,打开中国企业产业洞察的上帝之窗在商业史上,所有的溃败都始于认知的闭环。14年前,诺基亚CEO约玛奥利拉在手机业务售出的发布会…...
矢量网络分析仪在MRI射频子系统研发测试中的应用
磁共振成像(MRI)正经历双向演进:一方面,高场强系统向7T及更高场强发展,持续推动成像分辨率提升;另一方面,低场强永磁体技术逐步成熟,使便携式MRI在急救室、ICU及基层医疗场景中的应用…...
GD32与STM32替换实战:硬件差异与移植要点
1. GD32与STM32替换背景解析在当前的全球芯片供应环境下,许多工程师不得不面对从STM32转向国产替代方案的选择。作为国内领先的MCU厂商,兆易创新(GigaDevice)的GD32系列因其与STM32的高度兼容性,成为最受欢迎的替代方案之一。我曾在三个量产项…...
杰理之开mic关mic复位问题处理【篇】
开PC模式...
【数据结构】二叉树非递归前中后序遍历详解
二叉树的遍历是二叉树操作的基础核心,递归遍历实现简单但存在栈溢出风险,在处理深度较大的二叉树时,非递归遍历凭借手动维护栈的方式更具稳定性。本文将详细讲解二叉树前序、中序、后序的非递归遍历实现思路,结合 C 语言代码完整实…...
从火柴盒到AI:探索MENACE的数字化旅程
在计算机科学的历史中,有许多有趣的实验和发明,其中之一便是由唐纳德米奇(Donald Michie)设计的“火柴盒计算机”(Matchbox Educable Noughts and Crosses Engine,简称MENACE)。这个装置使用了火柴盒和彩色珠子来模拟人工智能,教机器玩井字游戏(Tic-Tac-Toe)。本文将…...














