阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下Squid代理缓存服务环境部署

464次阅读
没有评论

共计 6149 个字符,预计需要花费 16 分钟才能阅读完成。

代理服务器英文全称是 Proxy Server,其功能就是代理网络用户去取得网络信息。

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

一、工作流程

当代理服务器中有客户端需要的数据时:
1)客户端向代理服务器发送数据请求;
2)代理服务器检查自己的数据缓存;
3)代理服务器在缓存中找到了用户想要的数据,取出数据;
4)代理服务器将从缓存中取得的数据返回给客户端。

当代理服务器中没有客户端需要的数据时:
1)客户端向代理服务器发送数据请求;
2)代理服务器检查自己的数据缓存;
3)代理服务器在缓存中没有找到用户想要的数据;
4)代理服务器向 Internet 上的远端服务器发送数据请求;
5)远端服务器响应,返回相应的数据;
6)代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。

Linux 下 Squid 代理缓存服务环境部署

 

Squid 代理服务器工作在 TCP/IP 的应用层:

Linux 下 Squid 代理缓存服务环境部署

二、squid 分类
按照代理类型的不同,可以将 Squid 代理分为正向代理和反向代理。

正向代理 根据实现方式的不同,又可以分为普通代理和透明代理。
1)普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;
2)透明代理:适用于企业的网关主机(共享接入 Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的 Web 访问数据转交给代理服务程序处理;

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

三、squid 代理缓存环境部署过程:
1)关闭 selinux 和 iptables
[root@server~]# vim /etc/sysconfig/selinux
…….
SELINUX=disabled
[root@server~]# /etc/init.d/iptables stop

2)检查 squid 软件是否安装
[root@server~]# rpm -qa|grep squid

3)如果未安装,则使用 yum 方式安装
[root@server~]# yum -y install squid

4) 设置开机自启动, 在 3、5 级别上自动运行 squid 服务
[root@server~]# chkconfig –level 35 squid on

5)squid 服务器的配置文件说明
squid 的主配置文件是 /etc/squid/squid.conf,所有 squid 的设定都是在这个文件里配置,这里 squid 配置如下:
[root@server~]# vim /etc/squid/squid.conf
http_port 3128 # 设置监听的 IP 与端口号
cache_mem 64 MB   # 额外使用内存量,可根据你的系统内存在设定,一般为实际内存的 1 /3. 比如这里内存是 200M, 这里设置 1 / 3 就是 64MB
maximum_object_size 4 MB # 设置 squid 磁盘缓存最大文件,超过 4M 的文件不保存到硬盘
minimum_object_size 0 KB # 设置 squid 磁盘缓存最小文件
maximum_object_size_in_memory 4096 KB # 设置 squid 内存缓存最大文件,超过 4M 的文件不保存到内存
cache_dir ufs /var/spool/squid 100 16 256 # 定义 squid 的 cache 存放路径、cache 目录容量(单位 M)、一级缓存目录数量、二级缓存目录数量
logformat combined %&gt;a %ui %un [%tl] “%rm %ru HTTP/%rv” %Hs %<st “%{Referer}>h” “%{User-Agent}&gt;h” %Ss:%Sh #log 文件日志格式
access_log /var/log/squid/access.log combined #log 文件存放路径和日志格式
cache_log /var/log/squid/cache.log # 设置缓存日志
logfile_rotate 60 #log 轮循 60 天
cache_swap_high 95 #cache 目录使用量大于 95% 时,开始清理旧的 cache
cache_swap_low 90 #cache 目录清理到 90% 时停止
acl localnet src 192.168.1.0/24 # 定义本地网段
http_access allow localnet # 允许本地网段使用
http_access deny all # 拒绝所有
visible_hostname squid.david.dev # 主机名
cache_mgr wangshibo@huanqiu.com # 管理员邮箱

四、普通代理服务
即标准的、传统的代理服务,需要客户机在浏览器中指定代理服务器的地址、端口。
实验拓扑图如下:

Linux 下 Squid 代理缓存服务环境部署

1)配置 Squid 代理服务器 IP 地址
将 eth1 的 IP 地址修改为 200.168.10.1
[root@server~]# ifconfig eth1 200.168.10.1

2) 编辑 squid 主配置文件 /etc/squid/squid.conf
[root@server~]# vim /etc/squid/squid.conf
http_port 3128
cache_mem 64 MB
maximum_object_size 4 MB
cache_dir ufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log
acl localnet src 192.168.1.0/24
http_access allow localnet
http_access deny all
visible_hostname squid.david.dev
cache_mgr wangshibo@huanqiu.com

3) 初始化
[root@server~]# squid –z

4) 启动 Squid
[root@server~]# /etc/init.d/squid start

5) 配置 Web 服务器
安装 Apache
[root@server~]# rpm -qa|grep httpd
[root@server~]# yum -y install httpd
启动 Apache 并加入开机启动
[root@server~]# /etc/init.d/httpd start
[root@server~]# chkconfig httpd on
创建 index.html
[root@server~]# echo “<h1>Squid-Web1/200.168.10.2</h1>” > /var/www/html/index.html
修改 Web 服务器 IP 地址
将 web 服务器的 IP 地址修改为 200.168.10.2
[root@server~]# ifconfig eth0 200.168.10.2

6) 配置客户端 IP 地址

Linux 下 Squid 代理缓存服务环境部署

 

7) 配置浏览器代理
打开浏览器(以 IE 为例,其他类似),菜单栏 -> 工具 -> Internet 选项 -> 连接 -> 局域网设置 -> 代理服务器,按照以下格式设置。

Linux 下 Squid 代理缓存服务环境部署

8) 测试

Linux 下 Squid 代理缓存服务环境部署

 

五、透明代理服务
适用于企业的网关主机,客户机不需要指定代理服务器地址、端口等信息,通过 iptables 将客户机的 Web 访问数据转交给代理服务程序处理。
实验拓扑图如下:

Linux 下 Squid 代理缓存服务环境部署

1)修改 squid 主配置文件 /etc/squid/squid.conf
[root@server~]# vim /etc/squid/squid.conf
http_port 3128 transparent
cache_mem 64 MB
maximum_object_size 4 MB
cache_dir ufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log
acl localnet src 192.168.1.0/24
http_access allow localnet
http_access deny all
visible_hostname squid.david.dev
cache_mgr wangshibo@huanqiu.com

在 http_port 3128 后添加 transparent 关键字。

2) 重启 squid 服务
[root@server~]# /etc/init.d/squid reload

3)添加 iptables 规则,把内部的 http 请求重定向到 3128 端口
启动 iptables 服务
[root@server~]# /etc/init.d/iptables start
清除现有 iptables filter 表规则
[root@server~]# iptables -F
保存 iptables 设置
[root@server~]# /etc/init.d/iptables save
查看 nat 表设置
[root@server~]# iptables -t nat -L -n
在 nat 表中新增一条规则
[root@server~]# iptables -t nat -I PREROUTING -i eth0 -s 192.168.1.0/24 -p tcp –dport 80 -j REDIRECT –to-port 3128
保存 iptables
[root@server~]# /etc/init.d/iptables save

设置 iptables 开机启动
[root@server~]# chkconfig iptables on

4)修改客户端 IP 地址
将默认网关设置为 squid 服务器的内网 ip 地址。

Linux 下 Squid 代理缓存服务环境部署

5)在浏览器中,取消代理设置

Linux 下 Squid 代理缓存服务环境部署

6)测试

Linux 下 Squid 代理缓存服务环境部署

透明代理测试成功。

 

六、反向代理服务
为 Internet 用户访问企业 Web 站点提供缓存加速。
实验拓扑图如下:

Linux 下 Squid 代理缓存服务环境部署

 

 

1)关闭防火墙
# /etc/init.d/iptables stop
2)修改 Web Server 主页
Web1:
[root@server~]#echo “<h1>Squid-Web1/192.168.1.18</h1>” > /var/www/html/index.html

Web2:
[root@server~]# echo “<h1>Squid-Web1/192.168.1.19</h1>” > /var/www/html/index.html

3)配置 squid
[root@server~]# vim /etc/squid/squid.conf
http_port 80 accel vhost
http_access allow all
cache_peer 192.168.1.18 parent 80 0 originserver round-robin weight=1
cache_peer 192.168.1.19 parent 80 0 originserver round-robin weight=1
visible_hostname squid.david.dev
cache_mgr mchina_tang@qq.com

4) 启动 Squid 服务(在此启动会报错,是因为上面设置了 80 端口,和 http 端口冲突。关闭 http 即可成功启动这里的 squid)
[root@server~]# /etc/init.d/squid reload

5) 测试
squid 采用了 round-robin,所以客户端的访问将轮询两台 web 服务器,采用 “Ctrl + F5” 来深度刷新测试。
Web1:

Linux 下 Squid 代理缓存服务环境部署

Web2:

Linux 下 Squid 代理缓存服务环境部署

6)查看 squid 的访问日志。

Linux 下 Squid 代理缓存服务环境部署

 

七、实际应用
下面实验将模拟通过不同的域名访问不同的机器,简单实现企业应用中的负载均衡。客户端在浏览器地址栏中输入 www.squid.dev,将访问 192.168.1.18 这台机器,访问 bbs.squid.dev,将访问 192.168.1.19 这台机器。
实验拓扑图如下:

Linux 下 Squid 代理缓存服务环境部署

 

1)修改 Web Server 主页
Web1:
[root@server~]# echo “<h1>www.squid.dev/192.168.1.18</h1>” > /var/www/html/index.html

Web2:
[root@server~]# echo “<h1>bbs.squid.dev/192.168.1.19</h1>” > /var/www/html/index.html

2)配置 Squid
[root@server~]# vim /etc/squid/squid.conf
http_port 80 accel vhost
http_access allow all
cache_peer 192.168.1.18 parent 80 0 originserver name=www
cache_peer 192.168.1.19 parent 80 0 originserver name=bbs
cache_peer_domain www www.squid.dev
cache_peer_domain bbs bbs.squid.dev
visible_hostname squid.david.dev
cache_mgr wangshibo@huanqiu.com

3) 配置客户端
这里可以使用 DNS 服务来解析,这里我们为了方便,就在 hosts 文件里直接指定。

Linux 下 Squid 代理缓存服务环境部署

4) 测试网络情况 

Linux 下 Squid 代理缓存服务环境部署

5) 测试 www.squid.dev

Linux 下 Squid 代理缓存服务环境部署

6) 测试 bbs.squid.dev

Linux 下 Squid 代理缓存服务环境部署

7) 查看 squid 访问日志

Linux 下 Squid 代理缓存服务环境部署

8) 查看两台服务器的 apache 访问日志

[root@server~]# tailf /var/log/httpd/access.log

Linux 下 Squid 代理缓存服务环境部署

测试成功。

配置 Squid 代理 http 和 rsync http://www.linuxidc.com/Linux/2013-05/84642.htm

Squid:实现高速的 Web 访问 http://www.linuxidc.com/Linux/2013-04/83512.htm

CentOS 6.2 编译安装 Squid 配置反向代理服务器 http://www.linuxidc.com/Linux/2012-11/74529.htm

简单配置 Squid 代理和反向代理 http://www.linuxidc.com/Linux/2014-04/99465.htm

Squid 代理服务器搭建及配置 http://www.linuxidc.com/Linux/2016-03/129392.htm

CentOS 6.4 下 DNS+Squid+Nginx+MySQL 搭建高可用 Web 服务器 http://www.linuxidc.com/Linux/2014-04/99984.htm

Squid 的详细介绍:请点这里
Squid 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-10/136594.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6149字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7985986
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...