Squid(代理服务)

系统版本:CentOS7.X

概念



Squid是一个高性能的代理缓存服务器。可以帮助PC代理去请求页面数据,并缓存到本地。当第二次继续访问时直接将缓存页面返回给PC。

Squid的特点:

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

Squid工作有三种方式:正向代理、透明代理、反向代理。

理解示意图:

服务端:搭建正向代理服务



一、使用YUM工具安装Squid服务

# yum -y install squid

二、编辑Squid主配置文件,默认为简易配置

# vi /etc/squid/squid.conf                (编辑主配置文件

acl localnet src 192.168.1.0/24            #定义一个ACL,名为localnet,基于源地址为192.168.1.0/24网段

http_access allow localnet                 #调用ACL,允许localnet列表中的网段访问代理服务器

http_access deny all                       #拒绝所有

http_port 192.168.1.1:3128                 #设置监听端口和地址,默认为3128

coredump_dir /var/spool/squid              #设置高速缓存目录,默认为/var/spool/squid

access_log /var/log/squid/access.log       #日志文件存放位置

三、开启服务

# systemctl start squid                   (开启服务

# netstat -lnupt |grep squid              (查看端口

客户端:设置代理服务器



设置步骤:打开IE浏览器-----Internet属性------连接-----局域网设置

配置完整解析



配置文件路径:/etc/squid/squid.conf

日志文件路径:/var/log/squid

配置说明

一、基本配置

http_port 192.168.1.1:3128                  #设置监听地址和端口,如果只是端口则表示监听所有地址。

visible_hostname ren.com                    #可发现的主机名,给代理服务器设置一个名字。

access_log /var/log/squid/access.log        #访问日志存放位置。

coredump_dir /var/spool/squid               #设置一个内核转存目录,当Squid挂掉的时候,会将内存中的数据写到该目录下,默认为/var/spool/squid。

cache_mgr squiderror@test.com               #设置一个邮箱,当用户使用代理服务器中出现问题,会在错误页面显示一个邮箱地址,用于用户反馈错误。

reply_body_max_size  1024000 allow al     l #限制下载文件大小,单位为字节B。

二、优化配置

cache_dir ufs /var/spool/squid  100 16 256  #设置在本地磁盘设置一个缓存目录用于缓存数据。

“ufs”表示缓存数据的存储格式;

“/var/spool/squid”表示设置的缓存目录;

“100”表示缓存目录占磁盘空间大小,单位为MB;

“16”表示缓存数据的一级子目录个数为16个;

“256”表示缓存数据的二级子目录个数为256个。

cache_mem 1024MB                            #缓存占物理内存大小。单位为MB。

cache_swap_low 85                           #缓存占Swap虚拟内存最低大小为85%。

cache_swap_high 95                          #缓存占Swap虚拟内存最高大小为95%。当缓存数据占内存大小到95%时,会自动删除旧数据释放内存空间到百分之85%。

minimum_object_size 0KB                     #设置数据对象(页面数据)的最小大小,0表示不限制。

maximum_object_size 4096KB                  #设置数据对象(页面数据)的最大大小,当大于4MB的数据在不会缓存到磁盘。

三、访问控制

1、定义一个ACL

书写格式:acl 列表名 列表类型 内容

常用的ACL列表类型的使用


列表类型


描述


内容


src


基于源IP(客户机IP)


地址,例如:192.168.1.1

网段,例如:192.168.1.0/24

地址范围,例如:192.168.1.1-192.168.1.254


dst


基于目标IP(服务器IP)


地址,例如:1.1.1.1

网段,例如:1.1.1.0/24

地址范围,例如:1.1.1.1-1.1.1.5


port


基于端口


端口,例如:80


srcdomain


基于源域名(客户机的域名)


域名,例如:source.com


dstdomain


基于目标域名(服务器的域名)


域名,例如:www.baidu.com


method


基于HTTP访问请求类型


请求类型,例如:CONNECT


time


指定某个星期的时间


例如:MTWHF 8:30-17:30

M表示周一

T表示周二

W表示周三

H表示周四

F表示周五


maxconm


每个客户机的并发连接数


数字,例如:20


url_regex


要访问的目标资源URL地址


URL正则表达式,例如:^http://


urlpath_regex


要访问的目标资源URL完整路径


URL正则表达式,例如:\.jpg$

acl localnet src 192.168.1.0/24             #定义一个基于源IP的,名为localnet的ACL,网段为192.168.1.0/24。

acl Safe_ports port 80                      #定义一个基于端口的,名为Safe_ports的ACL,端口号为80。

acl Ddomain dstdomain gsgw.com              #定义一个基于目标域名的,名为Domain的ACL,域名为为gsgw.com。

acl CONNECT method CONNECT                  #定义一个基于访问请求类型的,名为CONNECT的ACL,请求类型为CONNECT。

acl Time time MTWHF 8:30-17:30              #定义一个基于时间的,名为Time的ACL,指定时间段为周一到周五每天的8:30-17:30。

acl MAX maxconm 20                          #定义一个客户机最大连接数,名为MAX的ACL,设置连接数为20。

acl URL url_regex ^https://                 #定义一个基于URL地址过滤的,名为URL的ACL,设置URL开头为https://的地址。正则中“^”表示开头,“$”表示结尾。

2、调用ACL

http_access deny all                        #拒绝访问所有

http_access allow localnet                  #允许localnet中定义的地址

http_access allow Safe_ports                #允许Safe_port中定义的端口

http_access allow Ddomain                   #允许Ddomain中定义的域名

http_access allow CONNECT                   #允许CONNECT中定义的HTTP访问请求类型

http_access allow Time                      #只有在Time中定义的时间段才能访问

http_access allow MAX                       #MAX中定义的客户机最大连接数为20

http_access allow URL                       #只允许访问符合URL中定义的路径地址

四、开启透明代理

http_port 192.168.1.0/24:3128 transparent   #设置监听地址和端口,如果只是端口则表示监听所有地址。并支持透明代理。

五、开启反向代理

http_port 192.168.1.1:80 vhost vport       #设置代理服务器监听的端口为80,并开启虚拟主机加速模式。

1、定义后端服务器

#设置后端WEB服务器地址和端口。采用权重调用的方式实现后端WEB服务器的负载均衡。

cache_peer 192.168.1.11 parent 80 0 originserver weight=1 max-conn=30 name=webServer1

cache_peer 192.168.1.12 parent 80 0 originserver weight=1 max-conn=30 name=webServer2

parent后面的0表示ICP端口号,当存在多个Squid服务器时使用。

weight表示设置一个权重值,值高则优先去这台服务器请求。

max-conn表示连接次数。

name表示定义一个别名,用于下方调用。

2、配置域名转发

#调用上面定义的服务器,当客户来代理服务器访问www.a.com时则将请求转发给后端的WEB服务器。

cache_peer_domain webServer1 www.a.com

cache_peer_domain webServer2 www.a.com

时间: 2024-08-29 21:30:51

Squid(代理服务)的相关文章

squid代理服务简单配置

Squid做为应用层的代理服务软件,squid主要用于提供缓存加速,应用层过滤控制的功能. 工作机制: 当客户机通过代理来请求web页面时,指定的大力服务器会先检查自己的缓存,如果缓存中已经有客户机需要的页面,则直接将缓存中的页面内容反馈给客户机:如果缓存中没有客户机要访问的页面,则有代理服务器向Internet发送请求,当获得返回的web页面以后,将网页数据保存到缓存中并发送给客户机. 代理服务器squid的好处:1,.提高了客户机的web访问响应速度.2.由于客户机的web请求是由代理服务器

RHCE 第18节课 Openldap目录服务和Squid代理服务

今天老师讲了两个部分的内容,分别的目录服务Openldap 和Squid 代理服务,openldap比较难理解,squid代理服务分为正向代理模式和反向代理模式,各有各的用处. 原文地址:https://blog.51cto.com/12331786/2459147

运维学习之squid代理服务

squid 一.squid是什么? 1.Squid是一个高性能的代理缓存服务器,Squid支持FTP.gopher和HTTP协议.和一般的代理缓存软件不同,Squid用一个单独的.非模块化的.I/O驱动的进程来处理所有的客户端请求. 2.Squid是一种用来缓冲Internet数据的软件.它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求.也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面.Squid随之连接到远程服务器(比如:htt

squid代理服务

一:squid传统代理服务 1.编译安装squid 2.创建链接文件,用户和组 3.修改squid配置文件 4.启动squid服务并成功看到3128端口开启 5.编写防火墙规则 6.配置客户端网络代理 7.客户机验证可以通过代理访问服务器 二:透明代理 1.改配置文件 2.新建防火墙规则 三:squid日志分析sarg服务 1.配置本地yum源并安装GD库 2.编译安装sarg服务 3.修改sarg配置文件 4.优化并运行sarg和httpd服务 5.客户机验证可以正常使用sarg工具

Squid代理服务ACL访问控制及日志分析

对于Squid服务的部署可以参考博文:Squid代理服务器安装及部署对于Squid服务配置代理服务器可以参考博文:利用Squid构建传统代理及透明代理 Squid服务的ACL访问控制 Squid提供了强大的代理控制机制,通过合理设置ACL(访问控制列表)并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等各种条件进行过滤. 在配置文件squid.conf中,ACL访问控制通过两个步骤来实现: 使用acl配置项定义需要控制的条件: 通过http_access配置项对已经定义的列表做

Linux的squid代理服务

一.squid简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息.Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快.Squid 可以代理HTTP.FTP.

squid 代理服务

一.正向代理 [[email protected] ~]# yum install -y squid [[email protected] ~]# squid -v //查看squid版本 Squid Cache: Version 3.1.10 [[email protected] ~]# rm -f /etc/squid/squid.conf //不使用默认配置 [[email protected] ~]# vim /etc/squid/squid.conf //加入 http_port 31

QQ使用squid代理服务登陆 离线 图片 失败

废话先不多说,直接上解决方案: squid.conf    里面增加   acl SSL_ports port 443 80 原因是因为 发图片的时候,离线截图是走tcp 80端口的 亲测可用.

42.部署Squid代理服务

Squid代理服务器 Squid代理服务器工作在应用层,主要提供缓存加速,应用层过滤控制等功能. Squid代理的工作机制: 当客户机通过代理来请求web页面时,指定的代理服务器会先检查自己的缓存,如果缓存中有数据则直接反馈给客户机,如果没有则由代理服务器向internet发送访问请求,然后返回web页面时,先缓存起来,然后反馈给客户机. Squid代理的基本类型: 传统代理:普通的代理方式,客户机需手动指定代理地址和工作端口 透明代理:客户机不需要指定代理地址和工作端口,而是通过默认路由,防火

SQUID代理服务(3)

透明代理透明代理提供的服务功能与传统代理是一致的,但是其"透明"的实现依赖于默认路由和防火墙的重定向策略,因此更适用于为局域网主机服务,而不适合为INTERNET中的客户机提供服务.配置SQUID支持透明代理SQUID服务的默认配置并不支持透明代理,因此需要调整相关设置.对于2.6以上版本的SQUID服务,只要在http_port配置行加上一个"transparent"(透明)选项,就可以支持透明代理了. *vim /etc/squid.conf* *httppor