《Linux就该这么学》第10章 使用Apache服务部署静态网站

本文介绍了如何配置 Apache Web 服务程序,包括设置网站数据目录、管理 SELinux 安全策略、实现个人用户主页和虚拟网站主机等功能,还涵盖了基于不同条件的访问控制方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

10.1 网站服务程序

目前能够提供Web网络服务的程序有IIS、Nginx和Apache等。
(1)IIS(Internet Information Services,互联网信息服务)是Windows系统中默认的Web服务程序,这是一款图形化的网站管理工具,不仅可以提供Web网站服务,还可以提供FTP、NMTP、SMTP等服务。
(2)Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和安全性广泛被认可且拥有快速、可靠、简单的API扩展。

10.2 配置服务文件参数

在这里插入图片描述
在httpd服务程序的主配置文件中,存在三种类型的信息:注释行信息、全局配置、区域配置,如图10-4所示。在这里插入图片描述
在这里插入图片描述
在默认情况下,网站数据是保存在/var/www/html目录中,而如果想把保存网站数据的目录修改为/home/wwwroot目录,该怎么操作呢?
步骤:
(1)建立网站数据的保存目录,并创建首页文件。
在这里插入图片描述
(2)打开httpd服务程序的主配置文件,将约第119行用于定义网站数据保存路径的参数DocumentRoot修改为/home/wwwroot,同时还需要将约第124行用于定义目录权限的参数Directory后面的路径也修改为/home/wwwroot。配置文件修改完毕后即可保存并退出。
在这里插入图片描述
(3)在这里插入图片描述
然后刷新网页在这里插入图片描述
(只有在网站的首页面文件不存在或者用户权限不足时,才显示httpd服务程序的默认首页面。这一切正是SELinux在捣鬼。)

10.3 SELinux安全子系统

1、简介:RHEL 7系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源,它能够从多方面监控违法行为:对服务程序的功能进行限制(SELinux域限制可以确保服务程序做不了出格的事情);对文件资源的访问限制(SELinux安全上下文确保文件资源只能被其所属的服务程序进行访问)。
2、SELinux服务有三种配置模式,具体如下。
(1)enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
(2)permissive:遇到服务越权访问时,只发出警告而不强制拦截。
(3)disabled:对于越权的行为不警告也不拦截。
3、getenforce和setenforce
SELinux服务的主配置文件中,定义的是SELinux的默认运行状态,可以将其理解为系统重启后的状态,因此它不会在更改后立即生效。可以使用getenforce命令获得当前SELinux服务的运行模式:在这里插入图片描述
(0为禁用,1为启用)
在这里插入图片描述
4、semanage命令:用于管理SELinux的策略,格式为“semanage [选项] [文件]”。
常用的参数:
-l参数用于查询;
-a参数用于添加;
-m参数用于修改;
-d参数用于删除。

10.4 个人用户主页功能

功能:可以让系统内所有的用户在自己的家目录中管理个人的网站,而且访问起来也非常容易。
步骤:
(1)开启个人用户主页功能
在这里插入图片描述
(2)在用户家目录中建立用于保存网站数据的目录及首页面文件。另外,还需要把家目录的权限修改为755,保证其他人也有权限读取里面的内容。在这里插入图片描述
(3)重新启动httpd服务程序,在浏览器的地址栏中输入网址,其格式为“网址/~用户名”(其中的波浪号是必需的,而且网址、波浪号、用户名之间没有空格),从理论上来讲就可以看到用户的个人网站了。
在这里插入图片描述
发现报错
(4)SELinux域确保服务程序不能执行违规的操作,只能本本分分地为用户提供服务。使用getsebool命令查询并过滤出所有与HTTP协议相关的安全策略。其中,off为禁止状态,on为允许状态。
在这里插入图片描述
在这里插入图片描述
补充:增加对用户的身份验证;
(1)先使用htpasswd命令生成密码数据库。-c参数表示第一次生成;后面再分别添加密码数据库的存放文件,以及验证要用到的用户名称(该用户不必是系统中已有的本地账户)。在这里插入图片描述
(2)编辑个人用户主页功能的配置文件。
修改31-37行内的信息,注释不要写。
在这里插入图片描述
刷新网页可以看到:在这里插入图片描述

10.5 虚拟网站主机功能

利用虚拟主机功能,可以把一台处于运行状态的物理服务器分割成多个“虚拟的服务器”。

1、基于IP地址

步骤:
(1)配置网络,nmtui在这里插入图片描述
分别在/home/wwwroot中创建用于保存不同网站数据的3个目录,并向其中分别写入网站的首页文件。并且检查连通性
在这里插入图片描述在这里插入图片描述
(2)在httpd服务的配置文件中大约113行处开始,分别追加写入三个基于IP地址的虚拟主机网站参数,然后保存并退出。记得需要重启httpd服务,这些配置才生效。
在这里插入图片描述
(3)我们需要手动把新的网站数据目录的SELinux安全上下文设置正确(见前文的实验),并使用restorecon命令让新设置的SELinux安全上下文立即生效,这样就可以立即看到网站的访问效果了.
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

2、基于主机域名

步骤:
(1)手工定义IP地址与域名之间对应关系的配置文件,保存并退出后会立即生效。可以通过分别ping这些域名来验证域名是否已经成功解析为IP地址。在这里插入图片描述
(2)分别在/home/wwwroot中创建用于保存不同网站数据的三个目录,并向其中分别写入网站的首页文件。每个首页文件中应有明确区分不同网站内容的信息,方便我们稍后能更直观地检查效果。在这里插入图片描述
(3)在httpd服务的配置文件中大约113行处开始,分别追加写入三个基于主机名的虚拟主机网站参数,然后保存并退出。记得需要重启httpd服务,这些配置才生效。
在这里插入图片描述
在这里插入图片描述
(4)因为当前的网站数据目录还是在/home/wwwroot目录中,因此还是必须要正确设置网站数据目录文件的SELinux安全上下文,使其与网站服务功能相吻合。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、基于端口号

作用:基于端口号的虚拟主机功能可以让用户通过指定的端口号来访问服务器上的网站资源。
步骤:
(1)分别在/home/wwwroot中创建用于保存不同网站数据的两个目录,并向其中分别写入网站的首页文件。每个首页文件中应有明确区分不同网站内容的信息,方便我们稍后能更直观地检查效果。
在这里插入图片描述
(2)在httpd服务配置文件的第43行和第44行分别添加用于监听6111和6222端口的参数。
在这里插入图片描述
(3)在httpd服务的配置文件中大约113行处开始,分别追加写入两个基于端口号的虚拟主机网站参数,然后保存并退出。记得需要重启httpd服务,这些配置才生效。
在这里插入图片描述
(4)因为我们把网站数据目录存放在/home/wwwroot目录中,因此还是必须要正确设置网站数据目录文件的SELinux安全上下文,使其与网站服务功能相吻合。最后记得用restorecon命令让新配置的SELinux安全上下文立即生效。
在这里插入图片描述
在这里插入图片描述
(5)SELinux允许的与HTTP协议相关的端口号中默认没有包含6111和6222,因此需要将这两个端口号手动添加进去。该操作会立即生效,而且在系统重启过后依然有效。设置好后再重启httpd服务程序,然后就可以看到网页内容了.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.6 Apache的访问控制

Apache可以基于源主机名、源IP地址或源主机上的浏览器特征等信息对网站上的资源进行访问控制。
它通过Allow指令允许某个主机访问服务器上的网站资源,通过Deny指令实现禁止访问。
在允许或禁止访问网站资源时,还会用到Order指令,这个指令用来定义Allow或Deny指令起作用的顺序,其匹配原则是按照顺序进行匹配,若匹配成功则执行后面的默认指令。
比如“Order Allow, Deny”表示先将源主机与允许规则进行匹配,若匹配成功则允许访问请求,反之则拒绝访问请求。

1、匹配源主机的浏览器特征

步骤:
(1)先在服务器上的网站数据目录中新建一个子目录,并在这个子目录中创建一个包含Successful单词的首页文件。在这里插入图片描述
(2)打开httpd服务的配置文件,在第129行后面添加下述规则来限制源主机的访问。这段规则的含义是允许使用Firefox浏览器的主机访问服务器上的首页文件,除此之外的所有请求都将被拒绝。
在这里插入图片描述
在这里插入图片描述

2、匹配源主机的IP地址进行访问控制

我们只允许IP地址为192.168.10.20的主机访问网站资源,那么就可以在httpd服务配置文件的第129行后面添加下述规则。在这里插入图片描述
访问其他网址就被拒绝:在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值