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

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

相关推荐
Momo__1 小时前
VueUse createReusableTemplate —— 单文件组件内的模板复用神器
前端·vue.js
程序员小富1 小时前
我开源了一个开发者专属的智能 JSON 工具,得到了媳妇高度认可
前端·vue.js·后端
小小小小宇1 小时前
程序员如何给 LLM 装工具以及看懂推理过程
前端
写代码的皮筏艇1 小时前
React中的forwardRef
前端·react.js·面试
槑有老呆1 小时前
花三个月工资请了个 AI 程序员,结果它连青岛啤酒股价都查不了
前端
风骏时光牛马1 小时前
Verilog开发常见问题汇总解析
前端
子兮曰1 小时前
AI Coding Method Map:一张图看懂 AI 编程的完整链路
前端·人工智能·后端
weedsfly1 小时前
语法糖褪去之后——Babel 转译产物中的 JavaScript 本貌
前端·javascript
JustHappy2 小时前
「软件设计思想杂谈🤔」“切图仔”也能懂编译原理?框架源码也许没那么难。聊聊 Vue 的编译(上)
前端·javascript·vue.js