当前位置: 首页 > 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该域名已存在所以浏览器无法访问

http://www.lryc.cn/news/221824.html

相关文章:

  • 2021年电工杯数学建模B题光伏建筑一体化板块指数发展趋势分析及预测求解全过程论文及程序
  • pandas教程:Essential Functionality 索引 过滤 映射 排序
  • pyspark连接mysql数据库报错
  • HK WEB3 MONTH Polkadot Hong Kong 火热报名中!
  • “第六十三天”
  • 常用排序算法实现
  • 使用表单登录方法模拟登录通信人家园,要求发送登录请求后打印出来的用户名下的用户组类别
  • Redis 的缓存击穿,穿透,雪崩及其解决方案
  • JWT原理分析——JWT
  • Jprofiler/ VisualVM 定位内存溢出OOM
  • NOIP2023模拟13联测34 competition
  • Intel oneAPI笔记(2)--jupyter官方文档(oneAPI_Intro)学习笔记
  • 用 QT 开发软件会吃官司吗?
  • 远程运维用什么软件?可以保障更安全?
  • 数据结构与算法C语言版学习笔记(2)-线性表、顺序存储结构的线性表
  • 【vite】vite.defineConfig is not a function/npm无法安装第三方包问题
  • 234. 回文链表 --力扣 --JAVA
  • 【JAVA学习笔记】65 - 文件类,IO流--节点流、处理流、对象流、转换流、打印流
  • R语言 复习 习题图片
  • c语言 结构体 简单实例
  • 【ChatGPT】ChatGPT的自定义指令
  • 《哥德尔、艾舍尔、巴赫——集异璧之大成》阅读笔记1
  • 稳定细胞系构建技术介绍
  • k8s部署srs服务
  • 使用Java分割PDF文件
  • LLM时代中的分布式AI
  • Zinx框架-游戏服务器开发003:架构搭建-需求分析及TCP通信方式的实现
  • 如何使用Pyarmor保护你的Python脚本
  • 【c++】搜索二叉树的模拟实现
  • Kubeadm - K8S1.20 - 高可用集群部署(博客)