linux Apache一

Apache的作用

Apache是一款使用量排名第一的web服务器,为http超文本传输协议提供支持的软件,与此类似的是nginx。Apache是老牌的,使用同步的阻塞模式,nginx是轻量级的,使用异步的非阻塞模式,因此nginx的速度更快,Apache的稳定性更高。
在rehl7中我们先配置好dns服务器,再查看有关企业的web服务器。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
curl命令是一款http命令行工具,使用 curl -I 指令输出http的头部。
在这里插入图片描述

Apache的安装

yum install httpd.x86_64 -y

在rehl8中安装Apache
在这里插入图片描述
在这里插入图片描述

Apache的启用

(1)开启服务
httpd服务安装好之后默认不启动,我们需要设置为开机启动且现在启动。
在这里插入图片描述
(2)配置防火墙
在配置防火墙之前,我们在rehl7中使用浏览器访问一下rehl8,发现访问失败,而可以ping通,这是怎么回事呢?
在这里插入图片描述
在这里插入图片描述
这是因为没有配置防火墙,接下来对防火墙进行配置。使用 firewall-cmd --list-all 指令查看火墙策略,发现没有http服务。
在这里插入图片描述
在防火墙中永久开启http和https访问,注意此时设定还未生效。
在这里插入图片描述
刷新防火墙使设定生效,刷新成功。
在这里插入图片描述
在rehl7中使用浏览器访问rehl8,访问成功。
在这里插入图片描述

补充: 可以使用 firewall-cmd --get-services 指令查看所有服务
在这里插入图片描述
在这里插入图片描述

Apache的基本信息

1.服务名称: httpd
2.配置文件
主配置文件:/etc/httpd/conf/httpd.conf
子配置文件:/etc/httpd/conf.d/*.conf
注意,子配置文件一般存放的是站点信息,主配置文件是apache的全局信息,将子配置文件中的信息写到主配置文件中也是可以的。
3.默认发布目录: /var/www/html
4.默认发布文件: index.html
5.默认端口
http:80
https:443
6.用户: apache
7.日志: /etc/httpd/logs
知识点6附图如下:

Apache的基本配置

1.Apache端口修改
(1)vim /etc/httpd/conf/httpd.conf
Listen 6666
(2)修改防火墙
firewall-cmd --permanent --add-port=6666/tcp
firewall-cmd --reload
(3)修改selinux
semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 6666
(4)systemctl restart httpd
实验步骤:
如果我们更改端口为8080,就不用进行selinux的设定。
(1)编辑主配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但在rehl7中使用8080端口仍无法访问rehl8,这是因为防火墙没有允许使用8080端口。
(2)修改防火墙
此时rehl7就可以成功访问了
在这里插入图片描述
在这里插入图片描述
这是因为:使用 semanage port -l | grep http 指令查看selinux针对http开放的端口,其中在缓存端口中就有8080。
在这里插入图片描述
补充: 如果我们更改端口为6666,需要设定selinux。
(1)先查看目前Apache使用的端口,发现使用的是80端口。(ss命令和netstat命令类似)
(2)编辑主配置文件
在这里插入图片描述
在这里插入图片描述
(3)配置防火墙
在这里插入图片描述
(4)设定selinux
如果不设定selinux的话,无法重启httpd服务。
方法一:直接设定selinux为警告模式,此时selinux为关闭状态。
在这里插入图片描述
这样就可以重启服务
在这里插入图片描述
但需要注意的是,此时在rehl7中通过6666端口仍无法正常访问rehl8,这是浏览器的限制。
在这里插入图片描述
方法二:设定selinux为http开放的端口,此时selinux是开启状态。
使用 semanage port -a(添加) -t(类型,即把6666加到哪里) http_port_t -p tcp 6666 指令将端口6666加入selinux针对http开放的端口中。
在这里插入图片描述
需要注意,rehl7仍无法正常访问rehl8,这是浏览器的限制。
在这里插入图片描述
2.更改默认发布文件
(1)vim /etc/httpd/conf/httpd.conf
DirectoryIndex lyueyue.html index.html
(2)systemctl restart httpd
实验步骤:
(1)将端口改回默认80
在这里插入图片描述
在这里插入图片描述
(2)编辑/var/www/html/index.html文件
如果index.html文件存在,则访问index.html文件,如果index.html文件不存在,则访问Apache公司的测试页。
未在rehl8中添加index.html文件前,在rehl7中只能访问到测试页。
在这里插入图片描述
在这里插入图片描述
在rehl8中添加index.html后,可以访问到index.html文件内容。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)新建/var/www/html/lyueyue.html文件
在这里插入图片描述
在这里插入图片描述
发现默认访问的仍是index.html
在这里插入图片描述
只有指定lyueyue.html才会访问lyueyue.html
在这里插入图片描述
(3)修改默认发布文件
即先访问lyueyue.html,当lyueyue.html没有的时候,访问index.html。
在这里插入图片描述
在这里插入图片描述
(4)在rehl7中访问rehl8
发现此时默认访问lyueyue.html文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.更改默认发布目录
(1)新建目录及index.html文件
(2)vim /etc/httpd/conf/httpd.conf
(3)设置selinux
实验步骤:
(1)新建目录/lyueyue/html,在此目录下新建index.html文件。
mkdir -p:递归建立
在这里插入图片描述
在这里插入图片描述
(2)修改主配置文件
DocumentRoot “/lyueyue/html”:设置默认发布目录
< Directory > < /Directory >:做授权
注意,如果只更改默认发布目录是无法访问的,只有授权之后才能正常访问。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
加上授权
在这里插入图片描述
在这里插入图片描述
发现还是无法访问
在这里插入图片描述
(3)设置selinux
方法一:直接将selinux改为警告模式
在这里插入图片描述
访问成功
在这里插入图片描述
方法二:修改安全上下文
修改安全上下文,刷新,并将selinux改回强制模式。
在这里插入图片描述
访问成功
在这里插入图片描述

Apache的访问控制

准备:
(1)先将默认发布目录还原
在这里插入图片描述
在这里插入图片描述
(2)建立/var/www/html/lyueyue目录,在此目录下新建index.html文件。
在这里插入图片描述
在这里插入图片描述
访问成功
在这里插入图片描述
1.基于客户端ip的访问控制
(1)ip黑名单
在设置黑名单前,两台虚拟机rehl7(192.168.145.7)和rehl8(192.168.145.100)均能访问 192.168.145.100/lyueyue。
在这里插入图片描述
在这里插入图片描述
设置黑名单,使用 Order Allow,Deny 指令:先读Allow再读Deny,即Deny会把Allow覆盖,实现了黑名单的效果。
在这里插入图片描述
在这里插入图片描述
发现rehl8(192.168.145.100)仍可以正常访问
在这里插入图片描述
而rehl7(192.168.145.7)无法访问
在这里插入图片描述
(2)ip白名单
设置白名单,使用Order Deny,Allow 指令:先读Deny再读Allow,即Allow会把Deny覆盖,实现了白名单的效果。
在这里插入图片描述
在这里插入图片描述
发现rehl8(192.168.145.100)访问失败
在这里插入图片描述
而rehl7(192.168.145.7)可以正常访问
在这里插入图片描述
2.基于用户的认证

vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/lyueyue">
 AuthUserfile /etc/httpd/myhtpasswdfile         #指定认证文件(文件名字任意)
 AuthName "Please input your name and password" #认证提示语
 AuthType basic                                 #认证类型
 Require user admin                             #允许指定在myhtpasswdfile文件中的用户通过(2选1)
Require valid-user                              #允许所有在myhtpasswdfile文件中的用户通过认证(2选1)
</Directory>

(1)允许所有用户通过
valid:有效的
在这里插入图片描述
使用 htpasswd -cm /etc/httpd/myhtpasswdfile admin 指令生成认证文件,-c表示创建,当/etc/httpd/myhtpasswdfile存在时不要使用此参数,否则会覆盖源文件,-m表示md5加密(默认)。
在这里插入图片描述
在这里插入图片描述
注意这两个用户不是真正的用户,它不是使用useradd建立的。
在这里插入图片描述
在rehl7中访问,当输入用户或密码失败时无法登录。
在这里插入图片描述
在这里插入图片描述
分别输入用户lll和用户admin正确的密码,发现成功登录。
在这里插入图片描述
在这里插入图片描述
< ctrl >+< shift >+< delete >:清除历史记录
在这里插入图片描述
在这里插入图片描述
(2)允许指定用户通过(admin)
在这里插入图片描述
在这里插入图片描述
发现在rehl7中使用admin用户可以成功登录,而使用lll用户不能登录。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
🌸

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值