RHCE——Apache

1.Apache的作用

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一.
简言而知,Apache是在web被访问时,http:// (超文本传输协议)的提供软件。
http:// 超文本传输协议提供软件: Apache nginx stgw jfe Tengine

一些常见的网页服务器软件有:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2.Apache的安装

环境:rhel8
ip:192.168.0.11
dnf install httpd.x86_64 -y
在这里插入图片描述
在这里插入图片描述


3.Apache的启用

systemctl enable --now httpd 开启服务并设定服务位开机启动
firewall-cmd --list-all 查看火墙信息
firewall-cmd --permanent --add-service=http 在火墙中永久开启http访问
firewall-cmd --permanent --add-service=https 在火墙中永久开启https访问
firewall-cmd --reload 刷新火墙使设定生效
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


4.Apache的基本信息

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

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


5.Apache的基本配置

5.1 Apache端口修改

vim /etc/httpd/conf/httpd.conf
Listen 6666 更改端口
firewall-cmd --permanent --add-port=6666/tcp 在火墙中添加端口
firewall-cmd --reload
semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 6666 在selinux中添加端口
systemctl restart httpd

实验一:更改端口号为8080
注意:8080端口是被用于WWW代理服务的,可以实现网页浏览,经常在访问某个网站或使用代理服务器的时候,会加上“:8080”端口号。另外Apache Tomcat web server安装后,默认的服务端口就是8080。
在这里插入图片描述

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


实验二:更改端口号为6060
注意:有些端口号由于浏览器安全限制最终会导致无法访问,如火狐浏览器不能访问6666端口
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


5.2 默认发布文件

注意: 默认发布文件如果不存在,访问的内容为测试仪; 默认发布文件如果存在,访问的内容为文件内容。
可在配置文件中更改默认发布文件
vim /etc/httpd/conf/httpd.conf
DirectoryIndex  test.html   index.html
(注意:这里会先访问前面的默认发布文件,如果失效再访问后面的)
systemctl restart httpd
在这里插入图片描述
在这里插入图片描述


实验:更改默认发布文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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


5.3 默认发布目录

1.更改配置文件,指定默认发布目录位置并授权
vim /etc/httpd/conf/httpd.conf

 <Directory "/test/html"> 
  DocumentRoot "/test/html" 
  Require all granted 
 </ Directory> 
 `

systemctl restart httpd`

2.更改发布目录的安全上下文同默认安全上下文一致
semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'
restorecon -RvvF /westos/ systemctl restart httpd
firefox http://192.168.0.11
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


6.Apache的访问控制

实验素材
mkdir /var/www/html/usertest
vim /var/www/html/usertest/index.html

< h1>westosdir's page </ h1>

firefox http://192.168.0.11/westos
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
rhe8的ip:192.168.0.10
rhe7的ip:192.168.0.20


1.基于客户端ip的访问控制
vim /etc/httpd/conf/httpd.conf
ip白名单在配置文件中的更改

<Directory "/var/www/html/usertest">        
Order Deny,Allow        
Allow from 192.168.0.10        
Deny from All 
</Directory>

ip黑名单在配置文件中的更改

<Directory "/var/www/html/usertest">        
Order Allow,Deny       
 Allow from All        
Deny from 192.168.0.10 
</Directory>

黑名单实验:
在这里插入图片描述 在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


白名单实验:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2.基于用户认证
1.在配置文件更改用户认证信息
vim /etc/httpd/conf/httpd.conf

 <Directory "/var/www/html/westos">       
  AuthUserfile /etc/httpd/htpasswdfile ##指定认证文件        
  AuthName "Please input your name and password" ##认证提示语        
  AuthType basic ##认证类型       
  Require user admin ##允许通过的认证用户 2选1 
  Require valid-user ##允许所有用户通过认证 2选 1 
  </Directory>  
 <

font color=blue>2.生成认证文件
htpasswd -cm /etc/httpd/htpasswdfile admin
注意: 当/etc/httpd/htpasswdfile存在那么在添加用户时不要加-c参数否则会覆盖源文件内容

实验一:允许所有用户验证:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意:再次登录不需要输入密码,清空历史后需要再次输入密码


实验二:允许指定用户验证:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


7.Apache的虚拟主机

1.一个IP建立多个站点
mkdir -p /var/www/westos.com/{news,wenku}
echo "wenku's page" >/var/www/westos.com/wenku/index.html
echo "news's page" > /var/www/westos.com/news/index.html
echo "default's page" > /var/www/html/index.html
在这里插入图片描述

2.在httpd的子配置文件中配置虚拟主机
vim /etc/httpd/Virtualhost.conf

DocumentRoot "/var/www/html" 
CustomLog logs/default.log combined 
</VirtualHost>

 <VirtualHost *:80> 
 ServerName wenku.westos.com 
 DocumentRoot "/var/www/westos.com/wenku" 
 CustomLog logs/wenku.log combined 
 </VirtualHost>
 
 <VirtualHost :80> 
 ServerName news.westos.com 
 DocumentRoot "/var/www/westos.com/news" 
 CustomLog logs/news.log combined 
 </VirtualHost>

systemctl restart httpd在这里插入图片描述
在这里插入图片描述

3.在浏览器所在主机(客户端)中设置地址解析
vim /etc/hosts
192.168.0.11www.westos.com  wenku.westos.com  news.westos.com

4.测试:在 firefox浏览器中测试
**http://www.test.com ** 在这里插入图片描述
**http://wenku.test.com **
在这里插入图片描述
http://news.westos.com
在这里插入图片描述


8.Apache的支持语言

8.1 支持html(默认)

cd /var/www/html ##切换到默认发布目录
echo "default's page" > /var/www/html/index.html ##编辑默认发布文件
在这里插入图片描述


8.2 支持php

dnf install php -y 安装php
vim /var/www/html/index.php z在默认发布目录中发布php发布文件

<? 
php phpinfo(); 
?>

systemctl restart httpd
测试:firefox http://192.168.0.11/index.php

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


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


8.3 支持cgi

1.生成cgi脚本,并给与执行权限
mkdir /var/www/html/cgidir
vim /var/www/html/cgidir/index.cgi
在这里插入图片描述
在这里插入图片描述
2.要允许对用户目录中以.cgi结尾的任何文件执行CGI程序
vim /etc/httpd/conf.d/Virtualhost.conf
<Directory “/var/www/html/cgidir”>
Options +ExecCGI AddHandler cgi-script .cgi
</ Directory>
在这里插入图片描述
3.测试: firefox http://192.168.0.11/cgidir/index.cgi(注意关闭selinux)


实验:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


9.Apache的加密访问

当需要使用更加安全的浏览器,如在用信用卡进行网上付款需要输入密码时:顾客点击链接建立TCP连接后,先进行浏览器和服务器之间的握手协议,完成加密算法的协商和会话密钥的传递,然后进行安全数据传输。HTTP会调用SSL/TLS对整个网页进行加密,为此万维网服务器使用SSL的默认服务端口443来取代普通万维网服务的80端口,此时在网址栏原先显示的http的地方会变成https。在协议明http后面加的s代表security,表明现在使用的是提供安全服务的HTTP协议。

9.1 生成apache加密证书

要求:安装SSL插件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


1.生成私钥
openssl genrsa -out /etc/pki/tls/private/www.test.com.key 2048
在这里插入图片描述


2.生成证书签名文件
openssl req -new -key /etc/pki/tls/private/www.westos.com.key -out /etc/pki/tls/certs/www.test.com.csr
在这里插入图片描述


3.生成证书
openssl x509 -req -days 365 -in /etc/pki/tls/certs/www.test.com.csr -signkey /etc/pki/tls/private/www.westos.com.key -out /etc/pki/tls/certs/www.westos.com.crt
注意:
x509 证书格式 ;-req 请求;-in 加载签证名称
-signkey /etc/pki/tls/private/www.westos.com.key 指定签证Key文件
在这里插入图片描述


4.编辑ssl配置文件
vim /etc/httpd/conf.d/ssl.conf
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


9.2 仅对需要内容加密访问

注意:加密访问虽然安全,但是会影响传输速率,我们可用在登录用户需要交互信息时进行加密访问。
1.建立登录等站点
mkdir -p /www/test.com/{wenku,news,login}
在这里插入图片描述


2.在http子配置文件中授权
vim /etc/httpd/conf.d/vhost.conf

 <VirtualHost *:80> 
 ServerName login.test.com 
 RewriteEngine on 
 RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 ##使网页从80端口自动跳转到443
 </VirtualHost>
 
 <VirtualHost *:443> 
 ServerName login.westos.com 
 DocumentRoot "/www/test.com/login" 
 CustomLog logs/login.log combined 
 SSLEngine on 
 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key 
 </VirtualHost>

systemctl restart httpd
注意:
^(/.*)$——客户地址栏中输入的地址
%{HTTP_HOST} ——客户主机
$1 ——RewriteRule后面跟的第一串字符的值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


10.Squid+Apache

10.1 squid 正向代理

实验环境: 两台主机
单网卡主机rhel8_node1:设定ip不能上网 IP:172.25.254.10
双网卡主机rhel8_node2:设定ip1可以连接单网卡主机,设定ip2可以上网
IP1:172.25.254.100
IP2:192.168.0.33(可以上网)
在这里插入图片描述在这里插入图片描述


实验操作: 在双网卡主机中
dnf install squid -y
vim /etc/squid/squid.conf

59 http_access allow all 
65 cache_dir ufs /var/spool/squid 100 16 256

systemctl restart squid firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload

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

**实验效果: 在单网卡主机中设置浏览器中的 NetWork Proxy
** 让单网卡主机不能上网但浏览器可以访问互联网页
测试: 在单网卡主机中 ping www.baidu.com 不通 在浏览器中访问www.baidu.com可以
在这里插入图片描述
在这里插入图片描述
测试: 在单网卡主机中 ping www.baidu.com 不通 在浏览器中访问www.baidu.com可以
在这里插入图片描述

10.2 squid反向代理

实验环境:
192.168.0.100 ##Apache服务器
192.168.0.33 ##squid,没有数据负责缓存
在这里插入图片描述
实验操作:
vim /etc/squid/squid.conf
http_port 80 vhost vport ##vhost 支持虚拟域名 vport 支持虚拟端口
#当192.168.0.12的80端口被访问会从192.168.0.11的80端口缓存数据
cache_peer 192.168.0.11 parent 80 0 proxy-only
systemctl restart squid
在这里插入图片描述
在这里插入图片描述 测试: firefox http://192.168.0.12 访问看到的时192.168.0.11上的数据
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值