Apache的部署四(正向代理、反向代理、web调度器)

概述:

1.代理服务器简介

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。 Squid是一个缓存Internet 数据的软件,
其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,
要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,
当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。
Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,
可以根据自己的需要设置Squid,使之过滤掉不想要的东西。

2.正向代理与反向代理

正向代理,是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),
然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

反向代理,是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,
并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器;

3.正向代理与反向代理的作用

 正向代理的用途:是为在防火墙内的局域网客户端提供访问Internet的途径。
 正向代理还可以使用缓冲特性减少网络使用率;
    
 反向代理的典型用途:将防火墙后面的服务器提供给Internet用户访问。
 反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。

1.正向代理 :(翻墙)

实验环境:

apahce-server主机:       172.25.254.134(apache端)
squid主机:               172.25.254.234(squid端)

(1)再打开一个虚拟机,更改名称为squid 并配置yum源

##更改主机名
[root@localhost ~]# hostnamectl set-hostname squid
##列出yum源信息
[root@squid ~]# yum repolist

在这里插入图片描述

(2)让squid 主机可以上网

在真机中(路由器):

@1.先连接wifi,让物理机(真机)可以上网
##未添加dns解析时只能以ip的形式访问百度
[root@foundation34 ~]# ping -w 3 183.232.231.172

在这里插入图片描述

@2.添加DNS域名解析
[root@foundation34 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0 
######################
DNS1=114.114.114.114

在这里插入图片描述

[root@foundation34 ~]# systemctl restart network
##添加dns解析后便可以直接访问百度的域名
[root@foundation34 ~]# ping -w 3 www.baidu.com

在这里插入图片描述

@3.打开防火墙
[root@foundation34 ~]# systemctl start firewalld
##查看火墙状态(如果开启失败,需要先关闭虚拟机再重新打开即可)
[root@foundation34 ~]# systemctl status firewalld

在这里插入图片描述

##查看火墙策略
[root@foundation34 ~]# firewall-cmd --list-all

在这里插入图片描述

@4.添加地址伪装策略
[root@foundation34 ~]# firewall-cmd --add-masquerade 
success
##查看火墙策略
[root@foundation34 ~]# firewall-cmd --list-all

在这里插入图片描述

@5.开启内核参数,打开路由功能(我这里已经打开过了就不用操作了)
[root@foundation34 ~]# sysctl -p
net.ipv4.ip_forward = 1

在squid主机中:

@1.添加网关
[root@squid ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 
###############
GATEWAY=172.25.254.34   ##设定网关是为了可以上网
DNS1=114.114.114.114    ##添加dns是为了能直接访问域名

在这里插入图片描述

@2.测试
##此时squid主机可以上网
[root@squid ~]# ping -w 2 www.baidu.com 

在这里插入图片描述

(3)squid服务的安装及部署

##安装squid服务报错
[root@squid ~]# yum install -y squid.x86_64 

在这里插入图片描述

##因为火墙未允许apache服务;由于真机不仅仅是yum源地址,又是路由器。所以防火墙必须开启。只能添加火墙策略
[root@foundation34 ~]# firewall-cmd --list-all

在这里插入图片描述

##1.要先添加真机火墙策略,让火墙允许apache服务;才能安装软件
[root@foundation34 ~]# firewall-cmd --add-service=http
success
[root@foundation34 ~]# firewall-cmd --list-all

在这里插入图片描述

##2.安装squid服务
[root@squid ~]# yum install -y squid.x86_64 
##3.打开squid服务
[root@squid ~]# systemctl start squid.service 
##4.编写squid主配置文件
[root@squid ~]# vim /etc/squid/squid.conf
###############
 56 http_access allow all
 62 cache_dir ufs /var/spool/squid 100 16 256    ##取消注释即可
    
注释:
ufs                    ##缓存数据的存储格式
/var/spool/squid       ##squid的cache存放路径 
100                    ##cache目录容量(单位M)
16                     ##一级缓存目录数量,默认是16 
256                    ##二级缓存目录数量,默认是256 

在这里插入图片描述

##5.重启squid服务
[root@squid ~]# systemctl restart squid
##6.关闭火墙
[root@squid ~]# systemctl stop firewalld
##发现每个有256个字节
[root@squid ~]# cd /var/spool/squid/
[root@squid squid]# ls
00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  swap.state
[root@squid squid]# cd 00
[root@squid 00]# ls
[root@squid 00]# ls | wc -l
256

在这里插入图片描述

(4)测试

##squid主机可以上网
[root@squid ~]# ping -w 3 www.baidu.com

在这里插入图片描述

##apache-server主机不能上网
[root@apache-server ~]# ping -w 2 183.232.231.172
connect: Network is unreachable
[root@apache-server ~]# ping www.baidu.com
ping: unknown host www.baidu.com

在这里插入图片描述
但发现apache-server主机的浏览器可以通过squid主机的缓存访问百度网页

[root@apache-server ~]# firefox &

1.先添加代理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.再输入 www.baidu.com 进行测试;发现可以访问百度,说明代理成功
在这里插入图片描述
2.反向代理(cdn加速)

  squid + apache = cdn
CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,
将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。

(1)编写squid主配置文件

[root@squid ~]# vim /etc/squid/squid.conf
###############
59 http_port 80 vhost vport
60 cache_peer 172.25.254.134 parent 80 0 proxy-only

注释:
vhost           ##支持域名和主机名来代理节点 
vport           ##支持ip和端口来代理节点  
parent          ##表示172.25.254.134是它的父级目录 
80              ##表示访问父级目录的80端口
0               ##表示没有备用机
proxy-only      ##表示只做代理 

在这里插入图片描述
(2)重启squid服务

[root@squid ~]# systemctl restart squid

(3)测试

在真机浏览器中输入 172.25.254.234 便可访问到134主机apache默认发布文件中的内容
在这里插入图片描述

3. web调度器(轮询)

实验环境:

apahce-server主机:       172.25.254.134(apache端)
localhost主机:           172.25.254.133(apache端)
squid主机:               172.25.254.234(squid 端)

(1)配置localhost主机

##1.安装apache
[root@localhost ~]# yum install -y httpd
##2.打开apache
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# cd /var/www/html/
##3.编写默认发布文件
[root@localhost html]# vim index.html 
######################
<h1> hello 172.25.254.133</h1>

(2)配置apache-server主机(同上)

[root@apache-server ~]# cat /var/www/html/index.html 
<h1> hello word! </h1>

(3)配置squid主机

[root@squid ~]# vim /etc/squid/squid.conf
###############
 61 cache_peer 172.25.254.134 parent 80 0 proxy-only name=web1 round-robin weight=2                ##weight表示权重
 62 cache_peer 172.25.254.142 parent 80 0 proxy-only name=web2 round-robin                         ##round-robin 表示轮询调度算法
 63 cache_peer_domain web1 web2 www.westos.com     ##将 www.westos.com 域名的请求通过 RR 轮询方式转发到2个父节点中的一个

在这里插入图片描述
(4)重启squid服务

[root@squid ~]# systemctl restart squid

(5)本地解析

[root@foundation34 ~]# vim /etc/hosts
######################
172.25.254.234 www.westos.com

在这里插入图片描述
(6)测试

在真机的浏览器中输入 www.westos.com
在这里插入图片描述
刷新网页:
在这里插入图片描述
刷新网页:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值