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:apr1XWPO6i0/$hNsM5W/Gx3ukFsPokAEEH.

tian:apr1SSblX1SO$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

添加内容,浏览器访问即可

相关推荐
杨运交9 分钟前
[025][Web模块]基于 Spring Boot 的请求日志过滤器设计与实现
前端·spring boot·后端
想你依然心痛11 分钟前
HarmonyOS 6(API 23)智能体驱动的沉浸式AR城市地下管网运维中心
运维·ar·harmonyos·智能体
xiaoye-duck12 分钟前
《Linux系统编程》Linux 命名管道 FIFO 详解:突破亲缘限制的跨进程通信实现
linux
文青小兵13 分钟前
Linux云计算——docker镜像(三)
linux·docker·云计算
逸Y 仙X13 分钟前
文章六:ElasticSearch 集群通信安全权限
java·大数据·服务器·elasticsearch·搜索引擎·全文检索
爱和冰阔落16 分钟前
【Linux系统编程】环境变量深度解析——从 fork 继承到 export 内建命令,两张表打通进程上下文
linux·c++·环境变量·系统调用
feng145618 分钟前
OpenSREClaw - 一切始于风险洞察报告
运维
IT_陈寒18 分钟前
React的useEffect里设状态?我又踩雷了
前端·人工智能·后端
恋猫de小郭21 分钟前
GSY 史上最全跨平台/架构/语言的项目,七大项目召唤「神龙」
android·前端·flutter
零壹AI实验室25 分钟前
AI发现潜伏18年的NGINX高危漏洞:CVE-2026-42945完整技术分析
运维·人工智能·nginx