环境

Windows11、VMware Workstation 16.2.2

系统

Red hat7.4

说明

什么是Apache?

  • Apache是一个基于流程的模块化Web服务器应用程序,它通过每个同时连接创建一个新线程。它支持许多功能; 其中许多都被编译为单独的模块并扩展其核心功能,并且可以提供从服务器端编程语言支持到身份验证机制的所有功能,它允许单个Apache Web服务器为许多不同的网站提供服务。

web系统的组成?

  • web服务是指能够让用户通过浏览器或APP访问并显示互联网中各类信息资源的服务。

  • web客户端:用户通过浏览器或APP接收其访问请求,以http或https将请求发送到网络中的web服务器,并将服务器的响应信息以图形界面显示出来。

  • web服务通信协议:实现web客户端与web服务器之间建立或关闭连接,传送网页信息的网络协议。主要有http和https两种协议,它们是再Internet上发布多媒体信息的应用层协议。

  • web服务器(web网站):侦听和响应客户端http/https请求,通过html(超文本标记语言)把信息组织成为图文并茂的超文本,并回送结果信息给客户端。

部署

项目一

1.配置🙀

/etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd" #设置Apache的根目录为/etc/httpd
Listen 80 #设置http侦听端口为80
ServerAdmin AliZhs@outlook.com #设置管理员E-mail地址为AliZhs@outlook.com
ServerName 192.168.22.110 #设置web服务器的主机名
DocumentRoot "/var/www/html" #设置网页文档的存放位置
DirectoryIndex index.html #指定首页文件的名称

2.创建首页文件🙀

/var/www/html

[root@jw2031-122 html]# echo "welcome to test index" > index.html #写入
[root@jw2031-122 html]# apachectl configtest #测试配置文件
Syntax OK

3.重启服务、测试略🙀

项目二

使用虚拟目录为多个部门建立子网站

名称 虚拟目录别名 物理路径
师部 /abc/shibu
炮团 /paotuan /abc/paotuan
侦察营 /zhencha /abc/zhencha
特战大队 /tezhan /abc/tezhan

根据上图表配置虚拟目录,IP地址为192.168.22.110

1.创建各自虚拟目录,并写入文档🐒

[root@jw2031-122 abc]# echo "师部首页" >shibu/index.html
[root@jw2031-122 abc]# echo "炮团首页" >paotuan/index.html
[root@jw2031-122 abc]# echo "侦察营首页" >zhencha/index.html
[root@jw2031-122 abc]# echo "特战大队首页" >tezhan/index.html

2.编辑虚拟目录配置文件🐒

在/etc/httpd/conf.d/目录下新建一个子配置文件来配置虚拟目录。

默认情况下,位于/etc/httpd/conf.d/目录下的所有以.conf结尾文件都会被加载作为Apache的配置信息.

3.Test🐒

image-20220520171539614

项目三

使用虚拟主机在一台主机上建立多个网站

根据上表搭建域名不同的两个虚拟主机

基于域名的虚拟主机

1.创建所需目录和首页文件🐻

1
2
[root@jw2031-122 ~]# echo "taobao">/var/www/taobao/index.html
[root@jw2031-122 ~]# echo "jd" >/var/www/jd/index.html

2.复制配置虚拟主机的样本文件编辑主机配置文件🐻

虚拟主机模板位置**/usr/share/doc/httpd-2.4.6/httpd-vhosts.conf**

1
2
3
4
5
6
7
8
9
10
11
12
[root@jw2031-122 ~]# cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/
[root@jw2031-122 conf.d]# cat httpd-vhosts.conf
<VirtualHost 192.168.1.2>
DocumentRoot /var/www/taobao
ServerName www1.taobao.com
DirectoryIndex index.html
</VirtualHost>
<VirtualHost 192.168.1.2>
DocumentRoot /var/www/jd
ServerName www1.jd.com
DirectoryIndex index.html
</VirtualHost>

3.测试🐻

1
2
3
4
[root@jw2031-122 ~]# curl www1.taobao.com
taobao
[root@jw2031-122 ~]# curl www1.jd.com
jd

基于端口号的虚拟主机

根据上表11-3】taobao设置端口号为80,jd设置为8080

1
2
3
vim  /etc/httpd/conf/httpd.conf
42 Listen 80 #设置侦听端口
43 Listen 8080

1
2
3
4
5
6
7
[root@jw2031-122 ~]# cat /etc/httpd/conf.d/httpd-vhosts.conf 
<VirtualHost 192.168.1.2:80>
DocumentRoot /var/www/taobao
</VirtualHost>
<VirtualHost 192.168.1.2:8080>
DocumentRoot /var/www/jd
</VirtualHost>

1
2
3
4
5
[root@jw2031-122 ~]# curl 192.168.1.2:80
taobao80
[root@jw2031-122 ~]# curl 192.168.1.2:8080
jd8080
[root@jw2031-122 ~]#

基于IP地址的虚拟主机

按照上图配置

1.设置IP地址🐎

1
2
3
4
5
6
7
cat /etc/sysconfig/network-scripts/ifcfg-ens33
......................
IPADDR=192.168.1.2
IPADDR1=192.168.1.1
NETMASK=255.255.255.0
NETMASK1=255.255.255.0
.......

2.创建相应目录🐎

1
2
3
4
[root@jw2031-122 ~]# mkdir -p /var/www/web1
[root@jw2031-122 ~]# mkdir -p /var/www/web4
[root@jw2031-122 ~]# echo "192.168.1.1 index" >/var/www/web1/index.html
[root@jw2031-122 ~]# echo "192.168.1.2 index" >/var/www/web4/index.html

3.编辑虚拟主机文件🐎

1
2
3
4
5
6
7
8
9
[root@jw2031-122 conf.d]# cat httpd-vhosts.conf 
<VirtualHost 192.168.1.1>
ServerName 192.168.1.1
DocumentRoot /var/www/web1
</VirtualHost>
<VirtualHost 192.168.1.2>
ServerName 192.168.1.2
DocumentRoot /var/www/web4
</VirtualHost>

4.test🐎

1
2
3
4
[root@jw2031-122 conf.d]# curl 192.168.1.1
192.168.1.1 index
[root@jw2031-122 conf.d]# curl 192.168.1.2
192.168.1.2 index

项目四

Web服务器的访问控制

基于用户认证的访问控制

1.创建用户保存到teacherwed认证文件中🐾

1
2
3
4
[root@jw2031-122 ~]# htpasswd -c /etc/httpd/.teacherwd zhang3
New password:
Re-type new password:
Adding password for user zhang3

htpasswd命令中”-c”选项表示无论认证文件是否存在,都重新写入文件并删除文件中原有的内容,因此添加第二个用户时,就无需再使用”-c”选项了,修改zhang3密码为htpasswd -m /etc/httpd/.teacherwd zhang3。


2.创建虚拟目录🐾

[root@jw2031-122 ~]# mkdir -p /www/lute
[root@jw2031-122 ~]# echo "cainiao" >/www/lute/index.html

3.设置虚拟目录添加认证访问🐾

1
2
3
4
5
6
7
8
[root@jw2031-122 ~]# cat /etc/httpd/conf.d/vdir.conf 
Alias /test /www/lute
<Directory "/www/lute">
AuthType Basic
AuthName "welcome"
AuthUserFile /etc/httpd/.teacherwd
Require valid-user
</Directory>

4.测试、略🐾………………………

基于客户端地址的访问控制

1
2
3
4
5
6
7
8
9
10
11
[root@jw2031-122 ~]# cat /etc/httpd/conf.d/vdir.conf
Alias /test /www/lute
<Directory "/www/lute">
AuthType Basic
AuthName "welcome"
AuthUserFile /etc/httpd/.teacherwd
<RequireAll>
Require valid-user #开启用户验证机制
Require not ip 192.168.1.2 #禁止IP地址客户端访问
</RequireAll>
</Directory>

`