Apache的管理及优化Web

一. Apache的作用

在web被访问时通常使用http://的方式
http://  超文本传输协议

http:// 超文本传输协议提供软件: Apache
. nginx
. stgw
. jfe
. Tengine

curl -I 地址 查看协议提供的软件

Tengine

在这里插入图片描述

Apache

在这里插入图片描述

nginx

在这里插入图片描述

二. Apache的安装

安装之前先保证你的yum源已经搭建完成

dnf install httpd.x86_64 -y

在这里插入图片描述

安装完成之后可以用rpm -qc httpd 查看配置文件

在这里插入图片描述

三. Apache的基本信息

服务名称: httpd

配置文件: /etc/httpd/conf/httpd.conf  主配置文件
     /etc/httpd/conf.d/*.conf   子配置文件

默认发布目录为:/var/www/html/

默认发布文件:/var/www/html/index.html

默认端口:   80   http
        443   https

用户:      apach

日志:      /etc/httpd/logs

四. apache的启用

systemctl enable --now httpd
开启http(apache)服务

firewall-cmd --list-all
查看火墙信息

在这里插入图片描述

注意:查询火墙信息时当没有http和https这两个服务时需要添加
命令如下:

firewall-cmd --permanent --add-service=http    在火墙中永久开启http访问
http(非加密形式)

firewall-cmd --permanent --add-service=https  在火墙中永久开启https访问
https(加密形式)

输入完成之后重新启动火墙:
firewall-cmd --reload              刷新火墙使设定生效

firewall-cmd --list-all      再次查看信息时两个服务将会被加载到其中

测试:
打开网页输入你apache的服务器

将会出现以下界面(即为成功)

在这里插入图片描述

当想修改这个页面时:
可以在/var/www/html/下建立index.html这个文件

(默认发布文件)

注意:在index.html中出现的字符将会出现在网页中

在这里插入图片描述

编辑index.html文件

vim /var/www/html/index.html

在这里插入图片描述

测试:

设置完成之后再次进入将会出现你在index.html中写的字符

在这里插入图片描述

五. Apache的基本配置

5.1 修改apache的端口

修改配置文件:/etc/httpd/conf/http.conf

注意:在修改你的端口时注意你的selinux和firewall火墙是否开启
当开启时需要做以下步骤

编辑配置文件进行修改

在这里插入图片描述

找到端口进行修改

在这里插入图片描述

注意:在修改端口之前先确认你的selinux是否处于打开状态

在这里插入图片描述

当处于打开状态时当你修改完端口之后服务无法启动

在这里插入图片描述

在这里插入图片描述

当selinux打开时,需要将你所要添加的端口号加入

在这里插入图片描述

添加完成之后重新启动http服务

在这里插入图片描述

给火墙添加这个端口

firewall-cmd --permanent --add-port=1111/tcp

firewall-cmd --reload

在这里插入图片描述

重新启动服务成功

测试:

先用默认端口测试

显示被拒绝

在这里插入图片描述

用指定端口访问

在这里插入图片描述

5.2 修改默认发布文件

编辑主配置文件对默认发布文件进行修改

vim /etc/httpd/conf/httpd.conf

DirectoryIndex  xue.html  index.html

在这里插入图片描述

设置完成之后重新启动服务

注意:哪一个文件在前就先访问哪一个文件,当第一个文件不存在时才会访问下一个文件中的内容(并且文件的后缀为.html)

编辑xue.html文件

在这里插入图片描述

写入内容

在这里插入图片描述

测试:

在这里插入图片描述

当xue.html这个文件被删除后

rm -fr /var/www/html/xue.html

再次测试:

由于第一个文件被删除,所以访问下一个文件中的内容

在这里插入图片描述

5.3 修改默认发布目录

编辑配置文件
vim /etc/httpd/conf/httpd.conf

在这里插入图片描述

注意:授权必须要添加不然无法访问

建立指定访问目录
mkdir /var/www/zyj/html -p

当新建的目录不在/var/www/html中时,需要修改/var/www/zyj/html的安全上下文才可以访问

semanage fcontext -a -t httpd_sys_content_t ‘/目录(/.*)?’
restorecon -RvvF /目录/    刷新

systemctl restart httpd    重新启动服务

由于建立的文件在/var/www/中所以自动修改了安全上下文

测试:

在这里插入图片描述

6. Apache的访问控制

建立实验素材:

mkdir /var/www/html/westos      创建一个目录
vim /var/www/html/westos/index.html  编辑默认访问文件
westosdir’s 目录           输入想要显示的字符

测试:查看是否设置成功

在这里插入图片描述

6.1 基于客户端ip的访问控制

ip白名单

编辑主配置文件

vim /etc/httpd/conf/http.conf

<Directory “/var/www/html/westos”>
Order Deny,Allow        先读Deny后读Allow
Allow from 172.25.254.208    允许这个ip访问
Deny from All          拒绝所有ip的访问
</Directory>

在这里插入图片描述

注意:Order意思时那个在前先读那个列表,名且后一个会覆盖前一个的内容

重新启动服务
systemctl restart httpd

测试:

ip=172.25.254.208

在这里插入图片描述

ip=172.25.254.8

在这里插入图片描述

ip 黑名单

编辑主配置文件

vim /etc/httpd/conf/http.conf

<Directory “/var/www/html/westos”>
Order Allow,Deny        先读Deny后读Allow
Allow from All           允许所有ip访问
Deny from 172.25.254.208     拒绝172.25.254.208的访问
</Directory>

在这里插入图片描述

重新启动服务:
systemctl restart httpd

测试:

ip=172.25.254.208

在这里插入图片描述

ip=172.25.254.8

在这里插入图片描述

6.2 基于用户认证

搭建实验素材

创建用户认证文件:

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

在这里插入图片描述

注意:当有用户存在时想要添加新用户需要去掉c再添加不然会覆盖之前的用户认证

不删除c演示命令
例如:

在这里插入图片描述

当c去掉之后
例如:

在这里插入图片描述

编辑服务主配置文件:

<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>

Require这两个二选以,第一个是只允许这个用户登陆,第二个是两个都可以登陆。

在这里插入图片描述

重新启动服务:
systemctl restart httpd

测试:

当用westos登陆时

第一步:输入用户和密码
用户是在.htpasswdfile中的用户

在这里插入图片描述

访问成功

在这里插入图片描述

当用zyj登陆时

登陆时会一直卡在这个页面

在这里插入图片描述

由于zyj用户不被Require user 认证所以无法登陆

当设置Require valid-user时在.htpasswdfile中的两个用户都可以登陆

在这里插入图片描述

重新启动服务

测试:
现在两个用户都可以登陆

在这里插入图片描述

七. Apache的虚拟主机

搭建实验环境

在子配置文件中编写名字.conf(后缀必须为.conf)

vim /etc/httpd/conf.d/xue.conf编辑建立的这个文件

在这里插入图片描述

创建所需要的目录和文件

mkdir -p /var/www/westos.com/{news,bbs,tieba}/html

echo news.westos.com > /var/www/westos.com/news/html/index.html

echo bbs.westos.com > /var/www/westos.com/bbs/html/index.html

echo tieba.westos.com > /var/www/westos.com/tieba/html/index.html

在这里插入图片描述

重新启动服务

在测试的主机中作地址解析

vim /etc/hosts

在这里插入图片描述

测试:

news.westos.com

在这里插入图片描述

bbs.westos.com

在这里插入图片描述

tieba.westos.com

在这里插入图片描述

八. Apache的语言支持

php

编辑php的默认测试页

vim /var/www/html/index.php

在这里插入图片描述

修改默认测试页:

在这里插入图片描述

设置完成之后重新启动服务

安装可以查看php的插件

在这里插入图片描述

安装完成之后php或自动在/etc/httpd/conf.d/下生成配置文件

我们只需重新启动服务即可

在这里插入图片描述

测试:

在这里插入图片描述

cgi

让apache和其他软件沟通

CGI(Common Gateway Interface: 公用网关接口)规定了Web服务器调用其他可执行程序(CGI
程序)的接口协议标准。Web服务器通过调用CGI程序实现和Web浏览器的交互,也就是CGI程序接受Web浏览器发送给Web服务器的信息,进行处理,
将响应结果再回送给Web服务器及Web浏览器。CGI程序一般完成Web网页中表单(Form)数据的处理、数据库查询和实现与传统应用系统的集成等工作。

简单来说,从物理上讲cgi实际是运行在web服务器上的一段程序,提供了同客户端html页面的接口,任何符合cgi标准的程序都是cgi程序。

安装apache手册

在这里插入图片描述

安装之后重新启动服务

在这里插入图片描述

访问manual可以查看cgi帮助

在这里插入图片描述

建立cgi访问目录

mkdir -p /var/www/html/cgi     建立cgi访问目录

vim /var/www/html/cgidir/index.cgi  建立默认访问文件

修改cgi的安全上下文

semanage fcontext -l | grep cgi     查看cgi的安全上下文

在这里插入图片描述

semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'

在这里插入图片描述

编辑/var/www/html/cgi/index.cgi

在这里插入图片描述

由于cgi是一个脚本所以给它一个执行权限

chmod +x /var/www/html/cgi/index.cgi

在这里插入图片描述

运行这个脚本测试

在这里插入图片描述

编辑子配置文件

<Directory “/var/www/html/cgidir”>
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>

在这里插入图片描述

测试:

在这里插入图片描述

这个结果是随着你的时间改变的

九. Apache的加密访问

安装加密插件

mod_ssl.x86.64

在这里插入图片描述

重新启动http服务

在/etc/pki/tls/中生成证书,钥匙

在这里插入图片描述

测试:

https://172.25.254.108       访问

当出现以下界面按照图中点击

在这里插入图片描述

下一步

在这里插入图片描述

点击

在这里插入图片描述

在这里插入图片描述

查看你这个网址信息

在这里插入图片描述

生成证书

openssl genrsa -out /etc/pki/tls/private/www.westos.com.key 2048 生成私钥

在这里插入图片描述

注意:密码要大于或等于2048位

openssl req -new -key /etc/pki/tls/private/xue.westos.com.key-out /etc/pki/tls/certs/xue.westos.com.csr                              生成证书签名文件

在这里插入图片描述

openssl x509  -req -days 365 -in  /etc/pki/tls/certs/www.westos.com.csr -signkey /etc/pki/tls/private/www.westos.com.key -out /etc/pki/tls/certs/www.westos.com.crt                             生成证书

在这里插入图片描述

x509 证书格式
-req 请求
-in 加载签证名称

编辑ssl的配置文件

在这里插入图片描述

重新启动http服务

按照之前步骤再次进入查看

网页信息被修改

在这里插入图片描述

网页重新加载

^(/.*)$ 客户地址栏中输入的地址
%{HTTP_HOST} 客户主机
$1 RewriteRule后面跟的第一串字符的值

在这里插入图片描述

建立一个属于xuepang.westos.com的目录

在这里插入图片描述

重新启动http服务

测试:

可以使用http://xuepang.westos.com进入可以看到跳转
在这里插入图片描述

十. squid 正向代理,反向代理

squid正向代理

此实验需要三个主机

实验环境:
单网卡主机设定ip不能上网
双网卡主机设定ip1可以连接单网卡主机,设定ip2可以上网

实验效果
让单网卡主机不能上网但浏览器可以访问互联网页

操作:

在网卡主机中操作

dnf install squid -y

在这里插入图片描述

编辑配置文件
/etc/squid/squid.conf

打开如下两个

在这里插入图片描述

重新启动squid服务

firewall-cmd --permanent --add-port=3128/tcp    添加3128端口
firewall-cmd --reload               重新启动服务

在这里插入图片描述

在不可上网的主机中设置

打开firefox进行设置

在这里插入图片描述

进入之后操作如图所示

在这里插入图片描述

操作完成后刷新,开始测试:

在单网卡主机中
ping www.baidu.com 不通
在浏览器中访问www.baidu.com可以

输入www.baidu.com的网址

在这里插入图片描述

ping www.baidu.com           ping不通

在这里插入图片描述

squid 反向代理

实验环境:
192.168.1.8        Apache 服务器
192.168.1.18        squid,没有数据负责缓存

编辑squid的主配置文件

vim /etc/squid/squid.conf

http_port 80 vhost vport vhost   支持虚拟域名  vport   支持虚拟端口
当192.168.1.18 的80 端口被访问会从192.168.1.8 的80 端口缓存数据
cache_peer  192.168.1.8  parent  80  0  proxy-only

在这里插入图片描述

重新启动服务

systemctl  restart  squid.service

测试:

192.168.1.8上的数据

编辑默认配置文件

在这里插入图片描述

写入数据

在这里插入图片描述

访问192.168.1.18这台主机的数据,但是现实的却是192.168.1.8这台主机的数据

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/X_pang/article/details/108099293