位置: IT常识 - 正文

Linux系统中Squid代理服务器配置全过程解析

编辑:rootadmin
这篇文章主要介绍了Linux系统中Squid代理服务器配置的全过程,Squid支持缓存多种不同的网络对象,性能很好,需要的朋友可以参考下... 16-01-30

推荐整理分享Linux系统中Squid代理服务器配置全过程解析,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

什么是squid?

Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。目前,Squid 可以代理HTTP, FTP, GOPHER, SSL 和 WAIS 协议.

使用squid的好处:快速响应,减少网络阻塞,增强访问控制,提高安全性.可以针对特定的网站,用户,网络,数据类型实施访问控制.

squid有3种代理方式:普通代理模式,透明代理模式,反向代理模式

1.普通代理模式

一个标准的代理缓冲服务被用于缓存静态的网页(例如:html文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的IP地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。

2.透明代理模式

透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux操作系统来说,透明代理使用Iptables或者Ipchains实现。因为不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet服务器提供商)特别有用。

3.反向代理模式

反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载,又称HTTP加速器。反向代理服务器承担了对原始WEB服务器的静态页面的请求,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载.Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器。只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。

以下是squid反向代理实验

有2台服务器,1台HTTP Server 10.1.1.200,端口80,有2个虚拟机主机www.testone.com www.testtwo.com提供服务

另一台Squid Server为反向代理服务器,10.1.6.200

Linux系统中Squid代理服务器配置全过程解析

客户机ip:10.1.6.173

测试: 客户机访问通过Squid Server 访问HTTP Server. 这里需要在客户机上修改/etc/hosts,添加二行10.1.6.200 www.testone.com10.1.6.200 www.testtwo.com(为了让客户机能够解析这2个域名对应ip为10.1.6.200 squid反向代理服务器的ip,监听端口默认是3128)

Squid Server 修改/etc/hosts,添加二行10.1.1.200 www.testone.com10.1.1.200 www.testtwo.com

安装squid

代码如下:root@10.1.6.200:~# apt-get install squid

配置squid

代码如下:root@10.1.6.200:~# vim /etc/squid/squid.confhttp_port 3128 #http_port告诉squid在哪个端口监听http请求,默认3128http_port 10.1.6.200:80 vhost #这里vhost支持虚拟主机cache_dir aufs /opt/squid/cache 200 16 256 #缓存目录的设置,语法:<目录> <MB大小> <dir1> <dir2>代码如下:#定义acl(访问控制列表),语法为:acl <acl 名称> <acl类型> <配置的内容>acl all src allacl localhost src 127.0.0.1/32acl to_localhost dst 127.0.0.0/8acl localnet src 10.0.0.0/8 # RFC1918 possible internal networkacl localnet src 172.16.0.0/12 # RFC1918 possible internal networkacl localnet src 192.168.0.0/16 # RFC1918 possible internal network 代码如下:acl Safe_ports port 80acl purge method PURGEacl CONNECT method CONNECTacl manager proto cache_object 代码如下:#利用前面定义的acl,定义访问控制规则http_access allow manager localhosthttp_access deny managerhttp_access allow purge localhosthttp_access deny purgehttp_access deny !Safe_portshttp_access allow all 代码如下:cache_mem 200 MB #如果物理内存很大,尽量设置大些maximum_object_size 20 MB #最大缓存块maximum_object_size_in_memory 5 MB #与内存保存资料有关的配置 代码如下:#虚拟机主机代理配置,如从客户端访问www.testone.com,则Squid向www.testone.com的80端口发送请求.cache_peer www.testone.com parent 80 0 no-query originserver name=onecache_peer www.testtwo.com parent 80 0 no-query originserver name=twocache_peer_domain one www.testone.comcache_peer_domain two www.testtwo.com 代码如下:#设置squid用户及用户组cache_effective_user proxycache_effective_group proxy 代码如下:#下面是关于日志文件access_log /var/log/squid/access.log squidcache_log /var/log/squid/cache.logcache_store_log none 代码如下:mime_table /usr/share/squid/mime.confpid_filename /var/log/squid/squid.pid 代码如下:coredump_dir /var/spool/squid

设置缓存目录权限为proxy,否则启动会提示没有权限

代码如下:root@10.1.6.200:opt# chown -R proxy:proxy squid/root@10.1.6.200:opt# lltotal 8drwxr-xr-x 3 proxy proxy 4096 2013-02-21 22:42 squid

在开启squid服务之前,先检查配置文件是否正确:(假如看不输出,配置文件有效)

root@10.1.6.200:opt# squid -k parse

初始化cache目录,即建立缓存目录的存储格式(在初次运行squid之前,或者增加了新的cache_dir,必须初始化cache目录),cache目录初始化可能花费一些时间,依赖cache目录的大小和数量,要观察详细过程可以加-X选项.

代码如下:root@10.1.6.200:squid# squid -z2013/02/22 20:31:10| Creating Swap Directories

启动squid服务

代码如下:root@10.1.6.200:squid# /etc/init.d/squid startStarting Squid HTTP proxy: squid.root@10.1.6.200:squid# netstat -tunlpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 0.0.0.0:39360 0.0.0.0:* LISTEN 1383/rpc.statd tcp 0 0 127.0.0.1:833 0.0.0.0:* LISTEN 1929/famd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1372/portmap tcp 0 0 10.1.6.200:80 0.0.0.0:* LISTEN 2491/(squid) tcp 0 0 0.0.0.0:22000 0.0.0.0:* LISTEN 1623/sshd tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 2491/(squid) tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1890/exim4 udp 0 0 0.0.0.0:58152 0.0.0.0:* 2491/(squid) udp 0 0 0.0.0.0:3130 0.0.0.0:* 2491/(squid) udp 0 0 0.0.0.0:711 0.0.0.0:* 1383/rpc.statd udp 0 0 0.0.0.0:111 0.0.0.0:* 1372/portmap udp 0 0 0.0.0.0:59518 0.0.0.0:* 1383/rpc.statd

这里不详细讲解HTTP Server 10.1.1.200配置虚拟主机过程,已分别配置好www.testone.com,www.testtwo.com虚拟主机

查看HTTP Server日志,会发现是Squid Server ip 请求数据.

代码如下:root@10.1.1.200:apache2# tail -f www.testone.com_access.log 10.1.6.200-- [22/Feb/2013:20:47:17 +0800] "GET / HTTP/1.0" 304-"-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; QQDownload 734; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"代码如下:root@10.1.1.200:apache2# tail -f www.testtwo.com_access.log 10.1.6.200-- [22/Feb/2013:20:49:07 +0800] "GET / HTTP/1.0" 304-"-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; QQDownload 734; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"

以下是整个访问原理过程:

1.当客户端在浏览器输入:www.testone.com 通过本地/etc/hosts解析,域名www.testone.com对应的ip是10.1.6.200(Squid反向代理服务器),于是客户端向Squid反向代理服务器默认3128端口发送请求,注意:在客户端输入www.testone.com和http://10.1.6.200是不一样的,如果是通过ip请求,则不能实现让Squid服务器对内部网络多个服务器代理,需要使用域名方式.在 配置 Squid 时,有两个选项,cache_peer 和 cache_peer_domain,这两个配置项让 Squid 有能力知道www.testone.com这个请求最终是想访问HTTP服务器10.1.1.200的80端口,从而实现了 Squid 对内部多个服务器作代理的功能需求。

2.Squid服务器收到客户端发来的请求,一看是www.testone.com,从配置它知道请求HTTP服务器10.1.1.200的80端口.

3.HTTP服务器提供服务监听80端口,收到Squid发送来的请求,于是根据请求发送相应数据给Squid服务器.

4.Squid收到HTTP服务器从80端口发送过来的数据后,会将该数据在本地缓存,同时将数据从自己的3128发送给客户端10.1.6.173.

本文链接地址:https://www.jiuchutong.com/zhishi/274441.html 转载请保留说明!

上一篇:Win11如何开启透明效果和动画效果 Win11视觉效果设置方法(win11透明任务栏怎么设置)

下一篇:微软输入法繁体改简体教程(微软输入法繁体字变简体字)

  • 截图快捷键是什么(截图快捷键是什么键)

    截图快捷键是什么(截图快捷键是什么键)

  • 苹果11手机如何应用分身(苹果11手机如何滚动截屏长图)

    苹果11手机如何应用分身(苹果11手机如何滚动截屏长图)

  • 荣耀30pro有微距拍摄功能吗(荣耀30pro有微距吗)

    荣耀30pro有微距拍摄功能吗(荣耀30pro有微距吗)

  • 消费级物联网专用卡怎么激活(消费级物联网专用卡怎么充值)

    消费级物联网专用卡怎么激活(消费级物联网专用卡怎么充值)

  • 如何不退出界面获取验证码(如何不退出界面获取验证码华为p20)

    如何不退出界面获取验证码(如何不退出界面获取验证码华为p20)

  • 荣耀20可以反向充电吗(荣耀20反向充电怎么关闭)

    荣耀20可以反向充电吗(荣耀20反向充电怎么关闭)

  • 一对蓝牙耳机分开使用(一对蓝牙耳机分开使用教程)

    一对蓝牙耳机分开使用(一对蓝牙耳机分开使用教程)

  • vivo手机掉了关机了可以找到吗(vivo手机掉了关机了)

    vivo手机掉了关机了可以找到吗(vivo手机掉了关机了)

  • dot文件用什么打开(do文件用什么打开)

    dot文件用什么打开(do文件用什么打开)

  • airpods2序列号在哪里(airpods2序列号在充电仓右边)

    airpods2序列号在哪里(airpods2序列号在充电仓右边)

  • 淘宝店铺能注销重开吗(淘宝店铺能注销那这个账号就不存在问题了吧)

    淘宝店铺能注销重开吗(淘宝店铺能注销那这个账号就不存在问题了吧)

  • oppoa37m怎么分屏(oppoa37手机怎么分屏操作视频)

    oppoa37m怎么分屏(oppoa37手机怎么分屏操作视频)

  • 微信朋友圈一条横线中间一点是什么意思(微信朋友圈一条线中间一个点)

    微信朋友圈一条横线中间一点是什么意思(微信朋友圈一条线中间一个点)

  • 华为手机从哪里下载软件(华为手机从哪里插卡)

    华为手机从哪里下载软件(华为手机从哪里插卡)

  • 手机摔了对焦模糊(手机摔了一下对焦模糊)

    手机摔了对焦模糊(手机摔了一下对焦模糊)

  • pp视频会员是什么(pp视频会员是什么软件)

    pp视频会员是什么(pp视频会员是什么软件)

  • 微信自助解封人脸识别失败怎么办(微信自助解封人工客服)

    微信自助解封人脸识别失败怎么办(微信自助解封人工客服)

  • vivo手机双卡怎么放卡(vivo手机双卡怎么设置流量使用)

    vivo手机双卡怎么放卡(vivo手机双卡怎么设置流量使用)

  • iphone11pro怎么隐藏小白点(iPhone11pro怎么隐藏游戏)

    iphone11pro怎么隐藏小白点(iPhone11pro怎么隐藏游戏)

  • vivo怎样设置个人铃声(怎么设置vivo)

    vivo怎样设置个人铃声(怎么设置vivo)

  • 小米cc9双卡怎么安装(小米cc9e双卡双待怎么一个卡槽)

    小米cc9双卡怎么安装(小米cc9e双卡双待怎么一个卡槽)

  • 苹果相机怎么关闭镜像(苹果相机怎么关闭夜间模式)

    苹果相机怎么关闭镜像(苹果相机怎么关闭夜间模式)

  • oppor11怎么拍星空(oppor11怎么拍星星)

    oppor11怎么拍星空(oppor11怎么拍星星)

  • 荣耀20上市时间(荣耀20上市时间是什么时候)

    荣耀20上市时间(荣耀20上市时间是什么时候)

  • 嘀嗒出行如何邀请车主(嘀嗒出行如何邀请新乘客)

    嘀嗒出行如何邀请车主(嘀嗒出行如何邀请新乘客)

  • win11界面不停刷新怎么办 快速解决电脑界面不停刷新的问题(win11界面不停刷新)

    win11界面不停刷新怎么办 快速解决电脑界面不停刷新的问题(win11界面不停刷新)

  • Win7提示“Windows驱动器未就绪”怎么办?(win7提示windows进行了未授权的更改)

    Win7提示“Windows驱动器未就绪”怎么办?(win7提示windows进行了未授权的更改)

  • 如何定时关机(华为如何定时关机)

    如何定时关机(华为如何定时关机)

  • 视同内销增值税怎么申报
  • 所得税税负率的计算公式中营业收入含不含税
  • 什么是代扣代缴申报
  • 民办非企业工会经费
  • 出口托收业务
  • 公司并购股权转让协议
  • 国税注销地税没注销怎么办
  • 未缴纳个人所得税承诺书模板
  • 今年补缴去年的税汇算清缴吗
  • 增值税设备抵扣怎么抵扣
  • 私人转公账可以开发票吗
  • 燃油税改革了谁的钱包
  • 企业以现金形式支付货款
  • 购买方红字信息表开具流程图
  • 进出口总额比上年同期
  • 营改增后哪些费用可以抵扣
  • 库存现金清查短款会计分录
  • 长期零申报有什么影响
  • 企业的其他业务收入
  • 基建拨款账务处理
  • 1697509110
  • 差旅费中的车票可以抵扣进项税吗
  • 应收和预收怎么算
  • 客户支付货款时扣除了手续费
  • 员工可以一起辞职吗
  • 企业社保缴费工资
  • 收到加盟费怎么入账
  • 固定资产折旧计算方法
  • 生物制品可以开箱验货吗
  • 建安混合销售能分开吗
  • php字符串赋值
  • 增值税进项如何取得更多
  • php精彩编程200例
  • 给外部人员发奖状怎么说
  • 带息应收票据应于收到或开出或承兑时
  • 贷记卡怎么还利息
  • iframe内嵌页面
  • php中关键字修饰属性是什么
  • 应付福利费和应付职工薪酬的关系
  • php 生成随机字符串
  • node升级版本
  • Vue+Element UI-el-date-picker时间日期选择器组件(实现向后端传值)
  • ChatGPT 被大面积封号,到底发生什么了?
  • elementui怎么样
  • 收到销售方的负债怎么办
  • timeout&f
  • 残保金工资总额是计提还是实发
  • 本地住宿费能报销吗
  • 未开票金额怎么填写
  • dedecms批量发文章
  • mysql临时表什么时候销毁
  • 在建工程转固定资产会计科目
  • 每月企业所得税怎么征收
  • 应交税费减免税款的分录
  • 费用发票处理
  • 委托加工物资的成本包括
  • 应付职工薪酬的含义
  • 差额开票和全额开票
  • 发票隔月可以重开吗
  • 房地产企业缴纳契税会计分录
  • 申请财产损失会计分录
  • 税务局多扣的税可以退吗
  • 其他应付款贷方余额怎么冲平
  • 结转销售成本怎么操作
  • sql server数据库字段类型
  • sql2000数据库怎么使用
  • UNIX系统中文件的索引表结构
  • ubuntu系统如何安装
  • vmware workstation15安装ubuntu
  • 为什么要升级呀
  • win8怎么启动资源管理器
  • win8使用体验
  • 电脑裸奔可以吗
  • 如何解决win10系统开机一直转圈圈的问题
  • windows10一分钟重启解决
  • 面向对象实例化
  • perl脚本输出变量
  • js 仿真
  • javascript中this的用法
  • android通信机制
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设