Squid代理服务器

文章目录

    • 一、Squid代理服务器概念
    • 二、Squid代理的作用
    • 三、Squid的工作流程
    • 四、Squid主要组成部分
    • 五、Squid各种代理的定义
      • 1、正向代理
      • 2、反向代理
    • 六、Squid调度器的实现(负载均衡)

一、Squid代理服务器概念

1、Squid是基于Unix的代理服务器(proxy server),它缓存比起点源点更接近请求者的互联网内容。Squid支持缓存多种不同的网络对象,包括那些通过HTTP和FTP访问的人。缓存频繁要求网页、媒体文件和其它加速回答时间并减少带宽堵塞的内容。
2、Squid代理服务器(Squid proxy server)一般和原始文件一起安装在单独服务器而不是网络服务器上。Squid通过追踪网络中的对象运用起作用。Squid最初担当中介,仅仅是把客户要求传递到服务器并存储要求对象的拷贝。如果同一个客户或同一批客户在要求还在Squid缓存(cache)时要求相同的对象,Squid就可以立刻服务,加速下载并保存带宽。
3、squid是一种用来缓存Internet数据的软件。接受来自人们需要下载的目标(object)的请求并适当的处理这些请求。也就是说,如果一个人想下载一web界面,他请求squid为他取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后,squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时, squid可以简单的从磁盘中读到它,那样数据会立即传输到客户机子
上。

二、Squid代理的作用

通过缓存的方式为用户提供Web访问加速
对用户的Web访问进行过滤控制

三、Squid的工作流程

当代理服务器中有客户端需要的数据时:
a. 客户端向代理服务器发送数据请求;
b. 代理服务器检查自己的数据缓存;
c. 代理服务器在缓存中找到了用户想要的数据,取出数据;
d. 代理服务器将从缓存中取得的数据返回给客户端。
当代理服务器中没有客户端需要的数据时:
a. 客户端向代理服务器发送数据请求;
b. 代理服务器检查自己的数据缓存;
c. 代理服务器在缓存中没有找到用户想要的数据;
d. 代理服务器向Internet 上的远端服务器发送数据请求;
f. 远端服务器响应,返回相应的数据;
g. 代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。
Squid代理服务器_第1张图片

四、Squid主要组成部分

服务名 squid
主程序 /usr/sbin/squid
配置目录 /etc/squid
主配置文件 /etc/squid/squid.conf
监听tcp端口号 3128
默认访问日志文件 /var/log/squid/access.log

五、Squid各种代理的定义

1、正向代理

客户自己主动设定代理服务器的信息

( 在做此实验之前,需要搭建实验环境:重置两台虚拟机,保证实验环境的纯净,同时配置一台虚拟机,使虚拟机可以上网,将这一台可以上网的虚拟机作为squid代理服务器,另一台作为客户端,自己的真机相当于服务器。)

实验步骤:
在可以上网的虚拟机上进行:
步骤一:
yum install squid -y ##安装squid服务
systemctl start squid ##开启squid服务
systemctl enable squid ##设置squid服务是开机启动
步骤二:
netstat -antlupe | grep squid ##查看squid服务使用的端口号
vim /etc/squid/squid.conf ##编辑squid配置文件
(允许别人把我当作代理服务器,缓存100M,要定期自动清理,16个一级目录,256个二级目录)
systemctl restart squid ##重启服务
Squid代理服务器_第2张图片
步骤三:
关闭火墙
Squid代理服务器_第3张图片
在不可以上网的虚拟机上进行:
步骤一:
在此虚拟机这个客户端进行测试:此时依然ping不通百度,依旧不能上网。
在这里插入图片描述
步骤二:
在此虚拟机的浏览器里面设置代理主机的信息,使它在依然ping不通百度的情况下,但是可以神奇的上网,
在浏览器里面加入代理服务器的信息,浏览器上明确指名代理服务器的IP地址和端口号(3128端口)
客户端上网时,每次都把请求发送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发送给客户端浏览器。
Squid代理服务器_第4张图片Squid代理服务器_第5张图片 Squid代理服务器_第6张图片

2、反向代理

企业服务器自己主动设定代理服务器的信息

squid反向代理也叫做cdn加速,利用squid代理服务器,此时属于反向代理
(此实验需要三台主机,自己的真机作为客户端,desktop虚拟机作为代理服务器,server虚拟机作为服务器(有apache服务))
实验步骤:
在代理服务器上:
步骤一:
设置squid反向代理服务器
直接查看有没有apache服务:rpm -qa | grep httpd 它没有apache,有squid服务
netstat -antlupe | grep 80这个代理服务器没有apache服务
在这里插入图片描述
在火墙中开启http
Squid代理服务器_第7张图片
步骤二:
vim /ect/squid/squid.conf ## 编辑squid代理文件
cd /usr/share/doc/squid-3.3.8/ ##查看ls内容
less squid.conf.documentd ##在这个里面查看编写要求 写入
( http_port 80 vhost vport ##利用80端口访问apache的资源,写入apache的虚拟主机和虚拟端口
cache_peer 服务器ip parent(父级) 80(apache服务端口) 0(此台代理服务器没有合作伙伴) proxy-only)
systemctl restart squid
Squid代理服务器_第8张图片
Squid代理服务器_第9张图片

在服务器上:
步骤一:
yum install httpd ##安装apache服务
systemctl start httpd ##开启apache
systemctl stop firewalld ##关闭防火墙

步骤二:
cd /var/www/html
vim index.html
编辑发布文件

(自己填写内容)


systemctl restart httpd ##重启apache服务
Squid代理服务器_第10张图片
在客户端上:测试
(1)添加本地解析:
vim /etc/hosts
172.25.254.x(写入代理服务器的ip)域名
(2)我在客户端ping www.westos.com(显示解析是由172.25.254.x给的)
或者在浏览器里面输入172.25.254.x直接可以看到服务器apache下面的东西,相当于客户端去访问代理服务器
或者在浏览器直接输入www.westos.com也可以,看到的也是服务器的东西
因为www.westos.com对应172.25.254.x,代理服务器没有资源,代理服务器去问服务器要东西,因此直接显示服务器下面共享出来的东西
Squid代理服务器_第11张图片

六、Squid调度器的实现(负载均衡)

为了缓解服务器压力
(搭建实验环境,利用上面实验拥有apache服务的虚拟机,再配置一台有apache服务的主机。)
在代理虚拟机上进行操作
步骤一:
编辑squid配置文件:
http_access allow all
http_port 80 vhost vport
cache_peer 172.25.254.200 parent 80 0 proxy-only no-query round-robin originserver name=web1weight=2
cache_peer 172.25.254.11 parent 80 0 proxy-only no-query round-robin originserver name=web2
cache_peer_domain web1 web2 www.westos.com
systemctl restart squid
Squid代理服务器_第12张图片
步骤二:
vim /etc/hosts
代理服务器的ip www.westos.com
firefox 输入www.westos.com
调度只能使用域名,ip不可以
注意:这里的用户访问只能是通过域名访问,如果通过ip访问的话就没有通过调度器而是直接访问,没有起到负载均衡的作用
Squid代理服务器_第13张图片
Squid代理服务器_第14张图片
Squid代理服务器_第15张图片

你可能感兴趣的:(rhce)