良许Linux教程网 干货合集 CentOS中部署Squid代理服务

CentOS中部署Squid代理服务

Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。

image-20211212163636008

系统环境

操作系统:CentOS release 6.5 Squid版本:squid-3.1.10-20.el6_5.3.x86_64 关闭httpd 关闭防火墙

安装Squid服务

检查squid软件是否安装

# rpm -qa|grep squid

如果未安装,则使用yum 方式安装

# yum -y install squid

设置开机自启动

# chkconfig --level 35 squid on             //在3、5级别上自动运行squid服务

squid服务器的配置文件说明

squid 的主配置文件是 /etc/squid/squid.conf,所有squid的设定都是在这个文件里配置,下面是一些常用的配置选项。

http_port 3128      //设置监听的IP与端口号

cache_mem 64 MB      //额外提供给squid使用的内存,squid的内存总占用为 X * 10+15+“cache_mem”,其中X为squid的cache占用的容量(以GB为单位),
               //比如下面的cache大小是100M,即0.1GB,则内存总占用为0.1*10+15+64=80M,推荐大小为物理内存的1/3-1/2或更多。
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 %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %h" "%{User-Agent}>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 example@test.com  //管理员邮箱

普通代理服务

即标准的、传统的代理服务,需要客户机在浏览器中指定代理服务器的地址、端口。 实验拓扑图如下: CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

配置Squid 代理服务器IP地址

将eth1的IP地址修改为200.168.10.1

# ifconfig eth1 200.168.10.1
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

编辑squid 主配置文件/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 mchina_tang@qq.com

初始化

# squid -z
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

启动Squid

# /etc/init.d/squid start

配置Web 服务器

A. 安装Apache

# rpm -qa|grep httpd
# yum -y install httpd

B. 启动Apache并加入开机启动

# /etc/init.d/httpd start
# chkconfig httpd on

C. 创建index.html

# echo "

Squid-Web1/200.168.10.2

" > /var/www/html/index.html

D. 修改Web服务器IP地址 将web服务器的IP地址修改为200.168.10.2

# ifconfig eth0 200.168.10.2

配置客户端IP地址

CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

配置浏览器代理

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

测试

CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

透明代理服务

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

修改squid 主配置文件/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 mchina_tang@qq.com

在http_port 3128 后添加transparent 关键字。

reload

reload 让上面的配置生效。

# /etc/init.d/squid reload

添加iptables规则,把内部的http请求重定向到3128端口

A. 启动iptables 服务

# /etc/init.d/iptables start

B. 清除现有iptables filter 表规则

# iptables -F

C. 保存iptables 设置

# /etc/init.d/iptables save

D. 在nat表中新增一条规则

# iptables -t nat -I PREROUTING -i eth0 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

E. 保存

# /etc/init.d/iptables save

修改客户端IP地址

将默认网关设置为squid 服务器的内网ip地址。 CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

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

CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

反向代理服务

为Internet用户访问企业Web站点提供缓存加速。 实验拓扑: CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

关闭防火墙

# /etc/init.d/iptables stop

修改Web Server 主页

Web1:
# echo "

Squid-Web1/192.168.1.18

" > /var/www/html/index.html
Web2: # echo "

Squid-Web1/192.168.1.19

" > /var/www/html/index.html

配置squid

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

启动Squid服务

CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置 squid启动失败,因为上面设定了squid的监听端口是80,和系统的http服务冲突,所以要将http服务停掉,然后再启动squid。

测试

squid 采用了round-robin,所以客户端的访问将轮询两台web服务器,采用 “Ctrl + F5” 来深度刷新测试。 Web1: CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置 Web2: CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

img
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部