第八章 使用Apache服务部署静态网站

news/2024/11/29 9:33:21/

文章目录

    • 第八章 使用Apache服务部署静态网站
        • 一、网站服务程序
          • 1、网站服务介绍
          • 2、Apache程序介绍
        • 二、配置服务文件参数
          • 1、Linux系统中的配置文件
          • 2、配置httpd服务程序时最常用的参数以及用途描述
        • 三、SELinux安全子系统
          • 1、SELinux介绍
          • 2、SELinux服务配置模式
          • 3、Semanage命令
          • 4、Semanage命令中常用的参数以及作用
        • 四、个人用户主页功能
          • 1、开启主页功能
          • 2、在用户家目录中配置相关文件
          • 3、重启服务
          • 4、访问网站
          • 5、修改SELinux策略规则
          • 6、重启服务
          • 7、访问网站
          • 8、生成密码数据库
          • 9、编辑用户主页的配置文件
          • 10、重启服务
          • 11、访问网站
        • 五、虚拟网站主机功能
          • 1、基于IP地址
            • (1)、编辑网卡
            • (2)、重启网卡
            • (3)、创建网站目录并编辑首页文件
            • (4)、编辑配置文件
            • (5)、设置SELinux
            • (6)、重启服务
            • (7)、访问网站
          • 2、基于主机域名
            • (1)、编辑hosts文件
            • (2)、创建目录并编辑网站首页内容
            • (3)、编辑配置文件
            • (4)、设置SELinux
            • (5)、重启服务
            • (6)、访问网站
          • 2、基于端口号
            • (1)、创建目录并编辑网站首页
            • (2)、添加端口
            • (3)、设置SELinux
            • (4)、查询过滤所有与HTTP协议并且SELinux服务允许的端口列表
            • (5)、手动添加端口并重启服务
            • (6)、访问网站
        • 六、Apache的访问控制
          • 1、创建目录并编辑网站首页
          • 2、编辑配置文件
          • 3、重启服务
          • 4、访问网站

第八章 使用Apache服务部署静态网站

一、网站服务程序

1、网站服务介绍

网站服务就是指Web网络服务,一般是只允许用户通过浏览器访问到互联网中各种资源的服务。Web网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的Web服务器,会通过HTTP(超文本传输协议)或者HTTPS(安全超文本传输协议)把请求的内容传送给用户。

2、Apache程序介绍

Apache程序是目前拥有很高市场占有率的Web服务程序之一其跨平台和安全性广泛被认可且拥有快速、可靠、简单的API扩展。Apache服务程序可以运行在Linux系统、Unix系统甚至是Windows系统中,支持基于IP、域名和端口号的虚拟主机功能,支持多种认证方式,集成有代理服务器模块、安全Socket层(SSL),能够实时监视服务状态与定制日志消息,并有着各类丰富的模块支持。

二、配置服务文件参数

1、Linux系统中的配置文件
文件名称作用
/etc/httpd服务目录
/etc/httpd/conf/httpd.conf主配置文件
/var/www/html网站数据目录
/var/log/httpd/access_log访问日志
/var/log/httpd/error_log错误日志
2、配置httpd服务程序时最常用的参数以及用途描述
参数作用
ServerRoot服务目录
ServerAdmin管理员邮箱
User运行服务的用户
Group运行服务的用户组
ServerName网站服务器的域名
DocumentRoot网站数据目录
Listen监听的IP地址和端口号
DirectoryIndex默认的索引页页面
ErrorLog错误日志文件
CustomLog访问日志文件
Timeout网页超时时间,默认为300秒

三、SELinux安全子系统

1、SELinux介绍

SELinux(Security-Enhanced Linux)是美国国家安全局在Linux开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。Linux系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。

2、SELinux服务配置模式
第一种:enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
第二种:permissive:遇到服务越权访问时,只发出警告而不强制拦截。
第三种:disabled:对于越权的行为不警告也不拦截
3、Semanage命令

semanage命令用于管理SELinux的策略,英文全称为:“SELinux manage”。

语法格式:semanage [参数] [文件]
4、Semanage命令中常用的参数以及作用
参数作用
-l查询
-a添加
-m修改
-d删除

四、个人用户主页功能

1、开启主页功能
//第17行添加井号(#)
//第24行去掉井号(#)
[root@centos ~]# vim /etc/httpd/conf.d/userdir.conf 
1 #
2 # UserDir: The name of the directory that is appended onto a user's home
3 # directory if a ~user request is received.
4 #
5 # The path to the end user account 'public_html' directory must be
6 # accessible to the webserver userid.  This usually means that ~userid
7 # must have permissions of 711, ~userid/public_html must have permissions
8 # of 755, and documents contained therein must be world-readable.
9 # Otherwise, the client will only receive a "403 Forbidden" message.
10 #
11 <IfModule mod_userdir.c>
12     #
13     # UserDir is disabled by default since it can confirm the presence
14     # of a username on the system (depending on home directory
15     # permissions).
16     #
17     # UserDir disabled
18 
19     #
20     # To enable requests to /~user/ to serve the user's public_html
21     # directory, remove the "UserDir disabled" line above, and uncomment
22     # the following line instead:
23     # 
24     UserDir public_html
25 </IfModule>
26 
27 #
28 # Control access to UserDir directories.  The following is an example
29 # for a site where these directories are restricted to read-only.
30 #
31 <Directory "/home/*/public_html">
32     AllowOverride FileInfo AuthConfig Limit Indexes
33     Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
34     Require method GET POST OPTIONS
35 </Directory>
2、在用户家目录中配置相关文件
//切换普通用户
[root@centos ~]# su - centos 
//创建目录
[centos@centos ~]$ mkdir pubic_html
//编辑网站首页内容
[centos@centos ~]$ echo "Welcome to my website!" > pubic_html/index.html
//家目录权限为755,保证其他用户也有quanx
[centos@centos ~]$ chmod 775 /home/centos/
3、重启服务
//退出普通用户登录
[centos@centos ~]$ exit
注销
//重启httpd服务程序
[root@centos ~]# systemctl restart httpd.service 
4、访问网站
http://192.168.2.22/~centos

在这里插入图片描述

5、修改SELinux策略规则
[root@centos ~]# setsebool -P httpd_enable_homedirs on
6、重启服务
[root@centos ~]# systemctl restart httpd
7、访问网站
http://192.168.2.22/~centos

在这里插入图片描述

8、生成密码数据库
[root@centos ~]# htpasswd -c /etc/httpd/passwd centos
New password: 	//密码
Re-type new password: 	//重新输入密码
Adding password for user centos
9、编辑用户主页的配置文件
[root@centos ~]# vim /etc/httpd/conf.d/userdir.conf 
1 #
2 # UserDir: The name of the directory that is appended onto a user's home
3 # directory if a ~user request is received.
4 #
5 # The path to the end user account 'public_html' directory must be
6 # accessible to the webserver userid.  This usually means that ~userid
7 # must have permissions of 711, ~userid/public_html must have permissions
8 # of 755, and documents contained therein must be world-readable.
9 # Otherwise, the client will only receive a "403 Forbidden" message.
10 #
11 <IfModule mod_userdir.c>
12     #
13     # UserDir is disabled by default since it can confirm the presence
14     # of a username on the system (depending on home directory
15     # permissions).
16     #
17     # UserDir disabled
18 
19     #
20     # To enable requests to /~user/ to serve the user's public_html
21     # directory, remove the "UserDir disabled" line above, and uncomment
22     # the following line instead:
23     # 
24     UserDir public_html
25 </IfModule>
26 
27 #
28 # Control access to UserDir directories.  The following is an example
29 # for a site where these directories are restricted to read-only.
30 #
31 <Directory "/home/*/public_html">
32    AllowOverride all
33    authuserfile "/etc/httpd/passwd"
34    authname "My privately website"
35    authtype basic
36    require user centos
37 </Directory>
10、重启服务
[root@centos ~]# systemctl restart httpd
11、访问网站
http://192.168.2.22/~centos/

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五、虚拟网站主机功能

1、基于IP地址
(1)、编辑网卡
[root@centos ~]# nmtui

在这里插入图片描述

(2)、重启网卡
[root@centos ~]# nmcli connection up ens160 
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4
(3)、创建网站目录并编辑首页文件
//创建网站目录
[root@centos ~]# mkdir -p /home/wwwroot/10
[root@centos ~]# mkdir -p /home/wwwroot/20
[root@centos ~]# mkdir -p /home/wwwroot/30
//编辑网站首页文件
[root@centos ~]# echo "IP:192.168.2.10" > /home/wwwroot/10/index.html
[root@centos ~]# echo "IP:192.168.2.20" > /home/wwwroot/20/index.html
[root@centos ~]# echo "IP:192.168.2.30" > /home/wwwroot/30/index.html
(4)、编辑配置文件
[root@centos ~]# vim /etc/httpd/conf/httpd.conf 
133 <VirtualHost 192.168.2.10>
134     DocumentRoot /home/wwwroot/10
135     ServerName www.aaa.com
136     <Directory /home/wwwroot/10>
137     AllowOverride None
138     Require all granted
139     </Directory>
140 </VirtualHost>
141 
142 <VirtualHost 192.168.2.20>
143     DocumentRoot /home/wwwroot/20
144     ServerName www.bbb.com
145     <Directory /home/wwwroot/20>
146     AllowOverride None
147     Require all granted
148     </Directory>
149 </VirtualHost>
150 
151 <VirtualHost 192.168.2.30>
152     DocumentRoot /home/wwwroot/30
153     ServerName www.ccc.com
154     <Directory /home/wwwroot/30>
155     AllowOverride None
156     Require all granted
157     </Directory>
158 </VirtualHost>
(5)、设置SELinux
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20/*
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30/*
[root@centos ~]# restorecon -Rv /home/wwwroot/
Relabeled /home/wwwroot from unconfined_u:object_r:user_home_dir_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /home/wwwroot/10 from unconfined_u:object_r:user_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /home/wwwroot/10/index.html from unconfined_u:object_r:user_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /home/wwwroot/20 from unconfined_u:object_r:user_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /home/wwwroot/20/index.html from unconfined_u:object_r:user_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /home/wwwroot/30 from unconfined_u:object_r:user_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
Relabeled /home/wwwroot/30/index.html from unconfined_u:object_r:user_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
(6)、重启服务
[root@centos ~]# systemctl restart httpd.service 
(7)、访问网站
http://192.168.2.10/
http://192.168.2.20/
http://192.168.2.30/

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、基于主机域名
(1)、编辑hosts文件
[root@centos ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.10 www.aaa.com
192.168.2.20 www.bbb.com
192.168.2.30 www.ccc.com
(2)、创建目录并编辑网站首页内容
//创建目录
[root@centos ~]# mkdir -p /home/wwwroot/aaa
[root@centos ~]# mkdir -p /home/wwwroot/bbb
[root@centos ~]# mkdir -p /home/wwwroot/ccc
//编辑网站首页内容
[root@centos ~]# echo "www.aaa.com" > /home/wwwroot/aaa/index.html
[root@centos ~]# echo "www.bbb.com" > /home/wwwroot/bbb/index.html
[root@centos ~]# echo "www.ccc.com" > /home/wwwroot/ccc/index.html
(3)、编辑配置文件
[root@centos ~]# vim /etc/httpd/conf/httpd.conf 
133 <VirtualHost 192.168.2.10>
134     DocumentRoot /home/wwwroot/aaa
135     ServerName www.aaa.com
136     <Directory /home/wwwroot/aaa>
137     AllowOverride None
138     Require all granted
139     </Directory>
140 </VirtualHost>
141 
142 <VirtualHost 192.168.2.20>
143     DocumentRoot /home/wwwroot/bbb
144     ServerName www.bbb.com
145     <Directory /home/wwwroot/bbb>
146     AllowOverride None
147     Require all granted
148     </Directory>
149 </VirtualHost>
150 
151 <VirtualHost 192.168.2.30>
152     DocumentRoot /home/wwwroot/ccc
153     ServerName www.ccc.com
154     <Directory /home/wwwroot/ccc>
155     AllowOverride None
156     Require all granted
157     </Directory>
158 </VirtualHost>
(4)、设置SELinux
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/aaa
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/aaa/*
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbb
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbb/*
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/ccc
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/ccc/*
[root@centos ~]# restorecon -Rv /home/wwwroot/
(5)、重启服务
[root@centos ~]# systemctl restart httpd.service 
(6)、访问网站
http://192.168.2.10/
http://www.aaa.com/
http://192.168.2.20/
http://www.bbb.com/
http://192.168.2.30/
http://www.ccc.com/

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、基于端口号
(1)、创建目录并编辑网站首页
//创建目录
[root@centos ~]# mkdir -p /home/wwwroot/6111
[root@centos ~]# mkdir -p /home/wwwroot/6222
[root@centos ~]# mkdir -p /home/wwwroot/6333
//编辑网站首页
[root@centos ~]# echo "port:6111" > /home/wwwroot/6111/index.html
[root@centos ~]# echo "port:6222" > /home/wwwroot/6222/index.html
[root@centos ~]# echo "port:6333" > /home/wwwroot/6333/index.html
(2)、添加端口
[root@centos ~]# vim /etc/httpd/conf/httpd.conf 45 Listen 8046 Listen 611147 Listen 622248 Listen 6333
135 <VirtualHost 192.168.2.10:6111>
136     DocumentRoot /home/wwwroot/6111
137     ServerName www.aaa.com
138     <Directory /home/wwwroot/6111>
139     AllowOverride None
140     Require all granted
141     </Directory>
142 </VirtualHost>
143 
144 <VirtualHost 192.168.2.20:6222>
145     DocumentRoot /home/wwwroot/6222
146     ServerName www.bbb.com
147     <Directory /home/wwwroot/6222>
148     AllowOverride None
149     Require all granted
150     </Directory>
151 </VirtualHost>
152 
153 <VirtualHost 192.168.2.30:6333>
154     DocumentRoot /home/wwwroot/6333
155     ServerName www.ccc.com
156     <Directory /home/wwwroot/6333>
157     AllowOverride None
158     Require all granted
159     </Directory>
160 </VirtualHost>
(3)、设置SELinux
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111/*
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222/*
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6333
[root@centos ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6333/*
[root@centos ~]# restorecon -Rv /home/wwwroot/
(4)、查询过滤所有与HTTP协议并且SELinux服务允许的端口列表
[root@centos ~]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
(5)、手动添加端口并重启服务
//添加端口
[root@centos ~]# semanage port -a -t http_port_t -p tcp 6111
[root@centos ~]# semanage port -a -t http_port_t -p tcp 6222
[root@centos ~]# semanage port -a -t http_port_t -p tcp 6333
//重启服务
[root@centos ~]# systemctl restart httpd.service 
(6)、访问网站
http://192.168.2.10:6111/
http://192.168.2.20:6222/
http://192.168.2.30:6333/

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

六、Apache的访问控制

1、创建目录并编辑网站首页
[root@centos ~]# mkdir /var/www/html/server
[root@centos ~]# echo "Successful" > /var/www/html/server/index.html
2、编辑配置文件
[root@centos ~]# vim /etc/httpd/conf/httpd.conf 
162 <Directory "/var/www/html/server">
163     SetEnvIf User-Agent "Firefox" ff=1
164     Order allow,deny
165     Allow from env=ff
166 </Directory>
3、重启服务
[root@centos ~]# systemctl restart httpd.service 
4、访问网站
http://192.168.2.10/server/

在这里插入图片描述


http://www.ppmy.cn/news/62946.html

相关文章

mysql 基线加固/等保整改

PS&#xff1a;高版本的mysql可能不适用本文 1 修改DBA登录密码 首次修改&#xff0c;在shell环境下执行mysqladmin -u root password&#xff0c;连续输入两次新密码非首次修改&#xff0c;在shell环境下执行mysqladmin -u root password -p 原密码&#xff0c;连续输入两次…

接口自动化测试之HTTP协议详解(敢称全网最全)

目录 协议 OSI模型 HTTP URL 报文 响应报文 HTTP扩展 协议 简单理解&#xff0c;计算机与计算机之间的通讯语言就叫做协议&#xff0c;不同的计算机之间只有使用相同的协议才能通信。所以网络协议就是为计算机网络中进行数据交换而建立的规则&#xff0c;标准或约定的集…

【django开发手册】DRF自动缓存应用实践分享——缓存注解详解及实现原理

本文节选自笔者博客&#xff1a;https://www.blog.zeeland.cn/archives/23r9oiasaaa &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是Zeeland&#xff0c;全栈领域优质创作者。&#x1f4dd; CSDN主页&#xff1a;Zeeland&#x1f525;&#x1f4e3; 我的博客&#…

改进YOLOv8 | 即插即用篇 | CVPR2023最新注意力 | 《BiFormer:视觉变换器与双层路由注意力》

作为视觉变换器的核心构建模块,注意力是一种强大的工具,可以捕捉长程依赖关系。然而,这种强大的功能付出了代价:计算负担和内存占用巨大,因为需要在所有空间位置上计算成对的令牌交互。一系列的研究尝试通过引入手工制作和与内容无关的稀疏性来缓解这个问题,例如将注意力…

rk3568 系统移植和编译

1。 硬件问题 尽量根据原版 evb 开发版 pcb 进行布线和移植&#xff0c;切记不可自行走线。 emmc 和 ddr4 选型都有要求的&#xff0c;按照硬件手册进行设计 2。软件问题 2.1 目前固件系统选用1.3.2 版本进行设计 解压后运行 .repo/repo/repo sync -c 更新代码 2.2 ubo…

用 Bitmap 实现亿级海量数据统计

在移动应用的业务场景中&#xff0c;我们需要保存这样的信息&#xff1a;一个 key 关联了一个数据集合。 常见的场景如下&#xff1a; 给一个 userId &#xff0c;判断用户登陆状态&#xff1b; 显示用户某个月的签到次数和首次签到时间&#xff1b; 两亿用户最近 7 天的签到…

PS VR创始成员:瑕不掩瑜,PS VR2是跨世代的飞跃

今年2月&#xff0c;索尼次世代VR头显PS VR2正式发售&#xff0c;这款立项近7年的产品受到了游戏玩家和从业者广泛关注&#xff0c;市面上也有很多种不同的测评报告。PS VR项目创始成员、前索尼沉浸式体验专家、高级VR游戏设计师Jed Ashforth也发表了自己对于该头显的一些看法&…

放弃40k月薪的程序员工作,选择公务员,我来分享一下看法

我有一个朋友&#xff0c;拒绝了我为他提供的4万薪水的工作&#xff0c;去了一个体制内的银行&#xff0c;做程序员&#xff0c;即使薪水减半。他之前在北京一家大公司做程序员&#xff0c;一个月30k。当我开始创业时&#xff0c;我拉他来和我一起干&#xff0c;但那时我们太小…