Apache的管理及优化web

1 实验环境

在虚拟机中设置主机名、ip,然后配置好软件仓库,作为一个web服务器。

2 Apache的作用

http是超文本传输协议,该协议是运行在tcp协议之上的。而https是http的一个加密的数据传输协议。协议是由软件提供的,而Apache就是众多能提供超文本传输协议的软件之一,提供超文本传输协议的软件有: Apache 、 nginx 、stgw 、jfe 、 Tengine 等

  • 可以输入“curl -I 域名”来查看该网站是由那个软件提供的超文本传输服务:

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

3 Apache的安装与启用

3.1 Apache的安装

  • dnf install httpd.x86_64 -y

可以使用dnf search httpd查找:
在这里插入图片描述
安装httpd服务,若之前安装过,就会显示如下:
在这里插入图片描述

3.2 Apache的启用

1)安装完httpd服务后,去网页访问该ip,是不成功的:
在这里插入图片描述
需要开启服务并设定服务开机启动:
在这里插入图片描述

2)查看火墙信息,在火墙中永久开启http和https访问,重新加载火墙使策略生效:
在这里插入图片描述
此时再去网页中输入ip就可以看到apache的默认页面,表示成功:
在这里插入图片描述

4 Apache的基本信息

基本信息含义
httpd服务名称
/etc/httpd/conf/httpd.conf主配置文件
/etc/httpd/conf.d/*.conf子配置文件
/var/www/html默认发布目录
index.html默认发布文件
80http服务的默认端口号
443https服务的默认端口号
apache用户
/etc/httpd/logs日志

1)可以输入rpm -qc httpd查看httpd服务的配置文件:
在这里插入图片描述

2)输入netstat -antlupe | grep httpd命令查看http服务的默认端口为80:
在这里插入图片描述

5 Apache的基本配置

5.1 端口管理

1)编辑主配置文件,该文件第45行处默认是Listen 80,表示端口为80,此处的端口可以修改。注意可以修改端口号的前提是selinux内核级加强型火墙是disable状态的,这样不会影响后续实验的进行:
在这里插入图片描述

2)修改端口后,重启该服务,然后再查看该服务的端口,发现端口已经改变:
在这里插入图片描述

3)虽然端口号已经发生改变,但是默认情况下,火墙策略是只允许80端口,所以还需要再修改火墙策略,注意此处修改火墙策略时,没有加–permanent参数,表示临时的火墙策略,所以在这里不能重新加载火墙策略,重新加载后端口的策略将不会生效:
在这里插入图片描述

4)此时默认的之输入ip的访问,是无法访问到的,必须再加上端口号:
在这里插入图片描述

5.2 默认发布文件管理

1)进入apache的默认发布目录cd /var/www/html/,编辑一个文件,该文件作为默认发布文件,名为vim index.html。注意默认发布文件必须在默认发布目录下:
在这里插入图片描述

2)此时进入网页输入ip,就可以直接看到默认发布文件里书写的内容。若是自定义发布文件的名称,则需要在ip后面加上“/文件名”,才能访问到文件里的内容:
在这里插入图片描述

3)若想修改默认发布文件名称又想在网址处直接输入ip访问,就需要修改主配置文件的内容。在主配置文件中搜索index,就可以查看到默认发布文件:
在这里插入图片描述
可以在前面添加文件名,表示默认发布文件有两个:
在这里插入图片描述
若其中一个文件存在,就访问该文件,不存在时,访问另一个文件。若两个文件都不存在,访问的就是apache默认页:
在这里插入图片描述
默认先访问第一个发布文件:
在这里插入图片描述
删除该发布文件:
在这里插入图片描述
删除后,就会自动去访问第二个文件:
在这里插入图片描述

5.3 默认发布目录管理

1)默认发布目录在/var/www/html/下,但若想自定义发布目录,可以自己建立默认发布文件和默认发布目录:
在这里插入图片描述

2)编辑主配置文件,搜索Doc,在122行处可以看到有DocumentRoot,后面是默认发布目录。想要自定义,此时可以修改后面的目录为自定义目录:
在这里插入图片描述
修改后,需要对该自定义目录进行授权访问,否则是无法访问到的:
在这里插入图片描述
修改完配置文件后,需要重启服务:
在这里插入图片描述

此时去网页访问,默认访问的就是自定义目录:
在这里插入图片描述
注意:要取消自定义时,只需要注释到掉自定义的目录即可

6 Apache的访问控制

6.1 基于ip的访问控制

1)在默认发布目录下建立一个子目录,在该子目录下建立文件:
在这里插入图片描述

在网页输入“ip/子目录名称”,就可以访问到发布目录子目录下的文件内容:
在这里插入图片描述

2)默认情况下,该子目录是所有用户都可以访问。编辑主配置文件,可以设定那些用户是能访问该目录的。在主配置文件中写入以下内容,注意后写入的信息会覆盖前一条信息。所以以下内容的第一条表示 Allow和Deny的读取顺序,后面的内容表示允许除了172.25.254.36外的所有用户访问:
在这里插入图片描述

3)设置完后重启服务,然后去访问apache,可以看到36主机的访问被拒绝:
在这里插入图片描述

4)编辑主配置文件,Deny和Allow的读取顺序交换,下面的命令表示,拒绝除了36主机以外的所有访问:
在这里插入图片描述

设置完后重启服务,然后去访问apache,可以看到36主机可以访问,其他中主机的访问会被拒绝:
在这里插入图片描述

6.2 基于用户的访问控制

1)建立认证文件,使用“htpasswd -cm /etc/httpd/.htpasswd admin”命令,其中-c表示创建,m表示设定,后面的/etc/httpd/.htpasswd文件表示隐藏文件,可以提高安全性,后面的admin表示apache用户名称,该用户在系统中存在与否都可以:
在这里插入图片描述

此时查看该文件,就会看到用户名称和密码,此时认证文件建立成功:
在这里插入图片描述

当该文件一旦存在,再去执行新的用户建立时,加上-c参数,原来的用户就会被删除,所以再次建立时不需要-c参数:
在这里插入图片描述

2)编辑主配置文件,注意在主配置文件中指定认证文件之后,可以输入ls -l /etc/httpd/.htpasswd命令,若该文件存在,说明写的是正确的。写入的内容,第一行表示指定认证文件,第二行表示指定认证提示语,第三行表示指定认证类型,第四行表示指定认证用户只有admin用户可以,第五行表示指定认证文件中的所有用户都可以通过认证。所以第四行和第五行中写一条即可,先测试第五行:
在这里插入图片描述

3)重启服务去访问该子目录,若出现以下情况,说明认证失败,或者用户密码错误:
在这里插入图片描述

输入经过认证的用户名和密码,就可以访问该子目录下的内容,此时再刷新一次,浏览器会自动记住用户名和密码,所以不需要再次登陆:
在这里插入图片描述在这里插入图片描述

清空浏览器信息可以按ctrl+shift+delete,在弹出的窗口处的下拉菜单里选everthing,然后选择clear now即可:
在这里插入图片描述

4)编辑主配置文件,注释第五行,测试第四行,即只有admin用户可以访问:
在这里插入图片描述

5)重启服务,使用未通过认证的用户无法登陆成功:
在这里插入图片描述

而用户admin经过认证的用户登陆成功:
在这里插入图片描述
在这里插入图片描述

7 Apache的虚拟主机

apache只能发布一个默认测试页,而无法发布多个默认测试页,若有多个页面想要去发布,可以使用apache的虚拟主机。
1)构建apache虚拟主机所用到的目录,构建三个需要发布的主页,以及三个主页的内容:
在这里插入图片描述

2)编辑一个默认主页的发布文件内容:
在这里插入图片描述

此时输入ip,显示的是默认发布目录下,默认发布文件中的内容:
在这里插入图片描述

3)此时访问linux.westos.org等主页是无法访问的,因为没有dns解析。若需要做解析,可以在用来测试的浏览器所在的主机里面书写本地解析:
在这里插入图片描述

做完本地解析后,再去访问时,不管输入www.westos.org、linux.westos.org、shell.westos.org、python.westos.org都访问的是默认发布目录中的默认发布文件的内容,即默认测试页的内容:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4)搭建虚拟主机,进入apache的子配置目录/etc/httpd/conf.d/下,编辑一个子配置文件,该子配置文件必须以.conf结尾,名称自定义:
在这里插入图片描述

编辑子配置文件,第一对标签及其内容表示apache的默认主机;后面三对是apache虚拟主机,其中ServerName参数表示虚拟主机域名、DocumentRoot表示虚拟主机默认发布目录、CustomLog表示虚拟主机日志(combined表示混合型日志):
在这里插入图片描述

重启服务,当服务启动出错时,就清空日志“> /var/log/message”,然后重启服务,查看日志文件,寻找错误原因;若服务启动了,但是无法访问时查看“cd /etc/httpd/logs”里面的内容即可;然后在浏览器上访问不同的页面:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

8 Apache的语言支持

8.1 php–>支持php语言

1)编写默认发布目录下的php文件,此时编写好后,去浏览器访问该文件是没有显示内容的,因为没有安装php插件:
在这里插入图片描述

2)安装php插件,然后重启服务:
在这里插入图片描述

再去浏览器访问,就会看到php界面:
在这里插入图片描述

8.2 cgi–>支持perl语言

apache在发布页面的时候,只能发布静态页面,但有很多程序的运行,是需要通过cgi调用的,调用后产生的结果再发给apache最后显示出来
1)安装apache的帮助文档,安装完成后,重启服务:
在这里插入图片描述

此时去浏览器,输入“ip/manual”就可以查看到帮助文档:
在这里插入图片描述

2)在帮助手册中找到cpi,然后copy一个例子:
在这里插入图片描述
在默认发布目录下,建立一个cgi目录,在该目录下编辑一个cgi文件,将复制的例子输入,该文件是使用perl写的,所以执行时,输入“perl 文件名”,就可查看到内容:
在这里插入图片描述

此时去浏览器里访问该文件,显示的会是代码的内容,而不是代码的执行结果:
在这里插入图片描述

3)给该文件可执行的权限:
在这里插入图片描述

4)编辑/etc/httpd/conf.d/vhost.conf文件,标签里面的两行内容分别表示执行cgi程序和参数触发器,注意第二行‘.cgi’前面有一个空格,不加上服务无法启动:
在这里插入图片描述在这里插入图片描述
此时进入浏览器访问该文件,显示的结果是脚本执行之后的结果:
在这里插入图片描述

8.3 wsgi–>支持python语言

1)在默认发布目录下建立一个wsgi目录:
在这里插入图片描述
编辑一个.wsgi文件:
在这里插入图片描述
给该文件可执行权限,然后去执行该文件,此时执行后,是没有效果的:
在这里插入图片描述

2)使用apache去发布该文件,wsgi需要一个单独的发布页面,编辑/etc/httpd/conf.d/vhost.conf文件,为wsgi写一个单独的页面,注意写完页面后,要在浏览器所在的主机书写本地解析:
在这里插入图片描述
书写本地解析:
在这里插入图片描述
3)安装wsgi插件,重启服务:
在这里插入图片描述
4)在浏览器中测试:
在这里插入图片描述

9 Apache的加密访问

使用apache进行数据传输时,默认是明文的,因此我们传输的数据很容易被别人获取到,其中可能包含用户名密码等信息,时非常不安全的。所以需要对数据进行加密传输,可以在apache服务器上生成锁、私钥、证书,需要传输数据的主机可以在apache主机中获取锁,然后用锁对数据进行加密,将加密之后的数据传输到apache主机上,apache服务器会使用钥匙将锁打开,查看数据。这种数据的传输方式叫做“https://”。
1)默认情况下,web主机是不支持https服务的,所以需要安装加密插件:
在这里插入图片描述

2)安装完插件后,就会在目录下产生加密配置文件:
在这里插入图片描述

3)重启服务,设置火墙策略:
在这里插入图片描述

4)此时去访问浏览器,会提示没有锁,点击右下角的Advanced下载,点击Accept,就可以访问到默认发布文件中的内容:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
此时输入网址的地方就会出现锁,但是会提示锁不安全,因为没有经过认证。点击锁子,然后进入查看更多信息,选择view certificate,就可以看到锁子的详细信息。但是里面的信息都不是自己的:
在这里插入图片描述在这里插入图片描述

删除下载好的锁,点击浏览器右边的菜单,点击preferences,左边有个锁子的图标点击进入,最下面有一个View Cretificates点击进入,在弹出的菜单里选择servers,下面将自己的锁删除即可:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

5)生成私钥,先建立一个目录,预备存放钥匙,然后生成名为/www.westos.org.key的钥匙,位数是2048位。可以查看到文件生成:
在这里插入图片描述在这里插入图片描述

6)文件生成后需要进行签证请求的书写,后面的顺序是“国家、省、城市、公司、部门、域名、邮箱、下面的回车即可”:
在这里插入图片描述

7)请求书写完了后,需要被授权,本应有特定机构去授权,此处只观察实验效果,自己做授权允许:
在这里插入图片描述

8)此时就生成了钥匙,加密时,只给主要的页面加密即可,此处建立一个登陆页面的目录,编辑/etc/httpd/conf.d/vhost.conf文件,写一个虚拟主机,重启服务:
在这里插入图片描述
标签中的第四行表示开启加密;第五行表示加密证书;第六行表示加密钥匙:
在这里插入图片描述
虚拟主机写完后,还需要在浏览器主机中编写本地解析文件:
在这里插入图片描述
9)此时再去浏览器访问https://login.westos.org/页面,然后同上面的步骤一样去下载锁,最后查看到锁的信息就是自己的:
在这里插入图片描述在这里插入图片描述
注意:若前面不加https://,而是直接输入login.westos.org,那么就会显示的是默认发布目录的内容,这是因为实际上访问的还是80端口,所以需要手动的将它转到443端口上去:
在这里插入图片描述

10)要自动转到443端口上,需要实现网页重新功能。编辑/etc/httpd/conf.d/vhost.conf文件,然后重启服务:
在这里插入图片描述
注意:
^(/.*)$ 表示:客户地址栏中输入的地址
%{HTTP_HOST}表示:客户主机
$1表示:RewriteRule后面跟的第一串字符串的值

11)重启后,输入login.westos.org或http://login.westos.org,它都会自动跳转到https://login.westos.org/,就像在网址处输入www.baidu.com或http://www.baidu.com或https://www.baidu.com,都会跳转到加密后的https://www.baidu.com是一个道理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值