squid 代理和缓存

于2017.04.21 从新浪博客搬迁过来

----------------------------------------------------------------

在现在的企业中squid 作为代理服务器和缓存服务器使用,在小型的环境中squid可以作为代理服务器来供单位用户上网使用;在大型的环境中squid又作为缓存服务器来对web进行加速。常见的有正向代理、透明代理、反向代理;

安装squid

安装可以使用yum安装,也可以使用源码包编译安装;无论何种安装方式都是非常简单的,下面使用yum自动安装:

#yum –y install squid

安装好后squid目录在/etc/squid,配置文件为/etc/squid/squid.conf

在这配置文件中可用的参数并不多,常见的如下:

http_port 3128                  代理端口

cache_mem 8 MB            缓存大小

cache_dir ufs /var/spool/squid 100 16 256         缓存文件路径

access_log /var/log/squid/access.log squid        日志路径及用户

maximum_object_size 4096 KB     缓存单个文件最大4M

reply_body_max_size 10240000 allow all  下载文件最大不超过10M    这里是字节为单位10240000字节==10M

visible_hostname proxy.test.com          squid服务器主机名

一、squid正向代理

正向代理通常用在小型的环境中,用来代理内网的用户进行上网,配置很简单,将cache_mem和 cache_dir 开启,修改代理端口(也可以是默认的3128);然后启动squid

配置代理端口

http_port 172.16.0.2:3128

配置缓存大小和缓存目录

cache_mem 16 MB

cache_dir ufs /var/spool/squid 100 16 256

建立acl控制访问

acl sina src 172.16.0.0/24

http_access allow sina

启动squid

#squid –k parse          检查配置文件是否有错误

#service squid start

在初次启动的时候,squid会初始化缓存目录,在服务器起来后可以查看缓存目录

#ls /var/spool/squid

#netstat –nap | grep squid

客户端测试

在浏览器中配置代理服务器

而实际上客户端本身根本是无法通讯的,所以这里正向代理设置成功了,将代理内网进行上网。

查看缓存命中HIT 表示缓存  MISS 表示未缓存

二、反向代理

正向代理是代理内网用户访问外网,而反向代理则是代理外网的用户来访问内网的服务器,并将内容进行缓存,提高用户访问速度;设置很简单在正向代理的基础上进行修改点即可。

修改代理端口和ip

http_port 192.168.5.155:80 vhost

设置后端源服务器

cache_peer web服务器 服务器类型 httpd端口 icp端口 [可选项]

cache_peer 172.16.0.4 parent 80 0 originserver weight=5 max-conn=30
cache_peer 172.16.0.5 parent 80 0 originserver weight=3 max-conn=30

这里介绍一下这些参数

172.16.0.4           后端web服务器或者其他squid代理服务器

originserver        父服务器(就是源服务器,当没有缓存的时候去那里取数据)

sibling                  兄弟服务器(在有多个squid服务器时,可以设置兄弟服务器,当请求过来本机没有缓存时,先去兄弟服务器查找缓存)

weight                 权重,后端服务器可以设置权重,一定程度实现负载均衡

max-conn            squid打开到邻居cache的同时连接的数量进行限制

保存这些配置,然后让squid重新读取配置文件

#squid –k reconfig

客户端测试

客户端与后端web服务器并不能通讯

三、用户认证

在企业中有时候有些内部的网站或者管理后台,只希望公司自己的员工能够访问,其他人则不能访问,这时候可以加一个用户认证来控制谁能访问。默认squid是不带认证程序的,可以通过外部认证程序来实现,下面介绍ncsa认证,ncsa是Squid源代码包自带的认证程序之一,实现步骤如下:

首先我们先找到ncsa程序所在位置

#find / -name ncsa_auth

/usr/lib64/squid/ncsa_auth

在squid.conf 中配置认证程序路径和密码文件

auth_parm basic program /usr/lib64/squid/ncsa_auth /etc/squid/etc/passwd

通过htpasswd 程序来创建密码文件

mkdir -p /etc/squid/etc/

htpasswd -c /etc/squid/etc/passwd test    #以后在添加用户时不需要 -c

配置acl访问控制

acl user_name proxy_auth REQUIRED

http_access allow user_name

可以使用单词"REQUIRED"作为特殊值去匹配任意用户名。假如squid 不能查明用户名,ACL 不匹配。

acl name proxy_auth test             #acl name proxy_auth REQUIRED

http_access allow name

客户端测试,需要输入用户名密码

四、透明代理

透明代理需要结合iptabls来实现,通过iptables转发数据,配置也很简单,只需要将squid的代理端口修改一下即可

http_port 172.16.0.2:3128 transparent

开启路由转发

echo "1" > /proc/sys/net/ipv4/ip_forward

配置iptabls 规则(不知是否正确,网上抄袭而来,对iptables很陌生)

iptables -t nat -A PREROUTING -i eth1 -s 172.16.0.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128

客户端将网关设置成172.16.0.2 即可

时间: 2024-08-16 09:11:42

squid 代理和缓存的相关文章

Squid代理--经典缓存代理服务器(实现正向代理配置、ACL各种访问控制、日志分析)

Squid是Linux系统中常用的一款开源代理服务软件官方网站http://www.squid-cache.org , 可以很好的实现http.ftp.dns查询,以及ssl等应用的缓存代理. 一.Squid服务概述 缓存代理概述 1.代理的工作机制 当客户机通过代理来请求web页面时,指定的代理服务器会先检查自己的缓存,如果缓存中已经有客户机需要访问的页面,则直接将缓存中的页面反馈给请求的客户端.如果缓存中没有,则由代理服务器向web服务器发起访问请求,当获得返回的web页面后,缓存服务器首先

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

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

squid 代理缓存服务器

Squid cache(简称为Squid)是一个流行的自由软件,它符合GNU通用公共许可证.Squid作为网页服务器的前置cache服务器,可以代理用户向web服务器请求数据并进行缓存,也可以用在局域网中,使局域网用户通过代理上网.Squid主要设计用于在Linux一类系统运行 代理服务器原理 代理服务器接受到请求后,首先与访问控制列表中的访问规则相对照,如果满足规则,则在缓存中查找是否存在需要的信息. 对于Web用户来说,Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Interne

squid代理缓存

Squid代理缓存Squid源码安装:tar xf squid-3.5.27.tar.gz //包要自己传或下载yum -y install \gcc \gcc-c++ \make \pcre-devel \expat-devel \perlyum install perl-develcd /squid-3.5.27/./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-arp-acl --enable-linux-ne

squid代理配置

squid:作用:代理,缓存,不可访问的通过代理可访问. 正向代理:squid后面是客户端,客户端上网要通过squid常用在企业办公环境中,节省网络带宽资源,员工上网需通过squid代理. 用户<--->访问<--->代理服务器<--->防火墙|资源服务器反向代理:squid后面是服务器,服务器返回给用户数据需要走squid.用在网站架构中,常用来搭建网站静态项(图片,css,html,js,流煤体等)缓存服务器. 用户<--->代理服务器<---&g

linux squid 代理

代理的作用,我的理解就是正向代理就是在一台电脑上实现简单两个不同网段的互通.代理服务器在这一点上和路由器的功能类似,常用于翻墙.反向代理为了解决大的访问量拥挤在同一台或者同一处的主机上出现拥堵.ps:每次修改过配置文件别忘了重启服务. 1,环境:Red Hat 4.4.7-16. 2,安装squid.可以采用yum -y install squid.如果使用源码编译安装,必须安装的依赖包有:gcc pcre-devel zlib-devel opensll-devel. 3,1)正向代理. 1.

配置squid 代理

一.什么是squid    1. squid可以做代理也可以做缓存       2.squid缓存不仅可以节省宝贵的带宽资源,也可以大大降低服务器的I/O       3.squid即可以做正向代理也可以做反向代理        4.正向代理,squid后面是客户端,客户端上网要通过squid去上:反向代理后面是服务器,服务器返回给用户数据的时候需要走squid        5.正向代理用在企业的办公环境中,员工上网需要通过squid代理来上网,这样子可以节省网络带宽资源,而反向代理用来搭建网

ubuntu squid 代理服务器安装配置

安装: 下载安装包 http://pan.baidu.com/s/1mitvwpE 解压 tar -xzvf file.tar.gz 编译: 进入sbin目录  执行 ./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-gnuregex --enable-icmp --enable-snmp --enable-default-err-language="Simplify_Chinese" --enable-k

nfs、samba、squid代理部署及优化

nfs部署及优化 nfs服务器上: [[email protected] vhosts]# yum install -y nfs-utils rpcbind [[email protected] vhosts]#  vim /etc/exports /mnt/ 192.168.137.21(rw,sync) //  /mnt/共享的目录,192.168.137.21允许访问的主机IP,(rw,sync)权限 [[email protected] vhosts]#  /etc/init.d/rpc