概述
概述:
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
刷新网页:
刷新网页:
最后
以上就是帅气蚂蚁为你收集整理的Apache的部署四(正向代理、反向代理、web调度器)的全部内容,希望文章能够帮你解决Apache的部署四(正向代理、反向代理、web调度器)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复