位置: 编程技术 - 正文

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

编辑:rootadmin

推荐整理分享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(端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程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 .1.1.,端口,有2个虚拟机主机www.testone.com www.testtwo.com提供服务

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

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

客户机ip:.1.6.

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

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

安装squid复制代码代码如下:root@.1.6.:~# apt-get install squid配置squid复制代码代码如下:root@.1.6.:~# vim /etc/squid/squid.confhttp_port #http_port告诉squid在哪个端口监听http请求,默认http_port .1.6.: vhost #这里vhost支持虚拟主机cache_dir aufs /opt/squid/cache #缓存目录的设置,语法:<目录> <MB大小> <dir1> <dir2>复制代码代码如下:#定义acl(访问控制列表),语法为:acl <acl 名称> <acl类型> <配置的内容>acl all src allacl localhost src .0.0.1/acl to_localhost dst .0.0.0/8acl localnet src .0.0.0/8 # RFC possible internal networkacl localnet src ..0.0/ # RFC possible internal networkacl localnet src ..0.0/ # RFC possible internal network 复制代码代码如下:acl Safe_ports port acl 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 MB #如果物理内存很大,尽量设置大些maximum_object_size MB #最大缓存块maximum_object_size_in_memory 5 MB #与内存保存资料有关的配置 复制代码代码如下:#虚拟机主机代理配置,如从客户端访问www.testone.com,则Squid向www.testone.com的端口发送请求.cache_peer www.testone.com parent 0 no-query originserver name=onecache_peer www.testtwo.com parent 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@.1.6.:opt# chown -R proxy:proxy squid/root@.1.6.:opt# lltotal 8drwxr-xr-x 3 proxy proxy -- : squid在开启squid服务之前,先检查配置文件是否正确:(假如看不输出,配置文件有效)

root@.1.6.:opt# squid -k parse

初始化cache目录,即建立缓存目录的存储格式(在初次运行squid之前,或者增加了新的cache_dir,必须初始化cache目录),cache目录初始化可能花费一些时间,依赖cache目录的大小和数量,要观察详细过程可以加-X选项.复制代码代码如下:root@.1.6.:squid# squid -z// ::| Creating Swap Directories启动squid服务复制代码代码如下:root@.1.6.:squid# /etc/init.d/squid startStarting Squid HTTP proxy: squid.root@.1.6.: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: 0.0.0.0:* LISTEN /rpc.statd tcp 0 0 .0.0.1: 0.0.0.0:* LISTEN /famd tcp 0 0 0.0.0.0: 0.0.0.0:* LISTEN /portmap tcp 0 0 .1.6.: 0.0.0.0:* LISTEN /(squid) tcp 0 0 0.0.0.0: 0.0.0.0:* LISTEN /sshd tcp 0 0 0.0.0.0: 0.0.0.0:* LISTEN /(squid) tcp 0 0 .0.0.1: 0.0.0.0:* LISTEN /exim4 udp 0 0 0.0.0.0: 0.0.0.0:* /(squid) udp 0 0 0.0.0.0: 0.0.0.0:* /(squid) udp 0 0 0.0.0.0: 0.0.0.0:* /rpc.statd udp 0 0 0.0.0.0: 0.0.0.0:* /portmap udp 0 0 0.0.0.0: 0.0.0.0:* /rpc.statd 这里不详细讲解HTTP Server .1.1.配置虚拟主机过程,已分别配置好www.testone.com,www.testtwo.com虚拟主机

查看HTTP Server日志,会发现是Squid Server ip 请求数据.复制代码代码如下:root@.1.1.:apache2# tail -f www.testone.com_access.log .1.6. - - [/Feb/::: +] "GET / HTTP/1.0" - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; QQDownload ; .NET4.0C; .NET CLR 2.0.; .NET CLR 3.0..; .NET CLR 3.5.)"复制代码代码如下:root@.1.1.:apache2# tail -f www.testtwo.com_access.log .1.6. - - [/Feb/::: +] "GET / HTTP/1.0" - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; QQDownload ; .NET4.0C; .NET CLR 2.0.; .NET CLR 3.0..; .NET CLR 3.5.)"以下是整个访问原理过程:

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

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

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

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

Linux中使用touch命令来修改文件的时间 用法:touch[选项]...文件...将每个文件的访问时间和修改时间改为当前时间。不存在的文件将会被创建为空文件,除非使用-c或-h选项。如果文件名为-则

Linux系统中的date时间日期命令使用教程 date命令使用标准的输出打印当前的日期和时间,也可以深入设置。复制代码代码如下:root@tecmint:~#dateFriMay::IST复制代码代码如下:root@tecmint:~#date-

简单了解Linux系统中clock命令的使用方法 clock命令:设置或者显示硬件时间的近似值必要参数--adjust自动调整硬件时钟时间--debug运行时,输出详细的处理过程--directisa不通过设备文件/etc/rtc,直

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

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

上一篇:在Linux命令终端中查看和编辑曾执行过的命令(在linux系统中命令)

下一篇:Linux中使用touch命令来修改文件的时间 (linux中使用最多的命令)

  • 消费税的税目有多少
  • 交了9个点的工程增值税不可以抵扣吗
  • 承销债券收取的承销费属于什么收入
  • 小规模公司企业所得税交多少
  • 小规模纳税人季度申报
  • 应纳税额关于进项和销项的计算公式
  • 开发票商品类别与商品明细的区别
  • 企业哪些做法违背了营销道德
  • 抵扣认证发票时间
  • 事业单位代扣社保公积金分录怎么写的
  • 企业重组中撤资所得税有哪些处理规则?
  • 收到银联客户备注短信
  • 公司以银行存款名义为员工垫付医疗费分录怎么写
  • 营改增后小规模纳税人转一般纳人
  • 个体工商户必须税务登记吗
  • 高新企业国家补助收入怎么入账
  • 企业购买自行车记账什么科目
  • 营业成本包括哪些会计科目
  • 万份收益是什么意思0.6
  • 代扣代缴增值税附加税减免政策
  • a107040减免所得税优惠明细表2020
  • 受托代理资产核算
  • win10应用商店下载微信
  • 股权转让分期付款协议
  • win10平板模式怎么打开
  • bhvc.exe
  • 阐述python中浅复制与深复制
  • 固定资产更新改造的账务处理
  • 招标单位收取标书费多少钱
  • 外商投资工业企业有哪些
  • codecline
  • 销售地下车库缴纳哪些税
  • 施工企业成本费用有哪些方面构成
  • 鹅卵石镇宅
  • yolo s
  • python爬虫案例题目
  • php内存缓存功能怎么用
  • 推特网页设置
  • 固定资产清理的会计科目处理
  • Python如何查看中风患者两表的数据量
  • scrapy csdn
  • 关于帝国战争的游戏
  • mysql日期和时间类型
  • 销售熟食卤制品怎么做
  • 年初未分配利润在借方表示什么
  • 原材料的主要账目有哪些
  • 一般纳税人企业所得税税率2023
  • 企业非正常损失如何处理
  • 计提生产产品的机器设备的折旧应借记制造费用科目
  • 有限合伙企业分红原则
  • 应收账款的客户如何分析
  • 未完工的工程施工怎么处理
  • 公司购买汽车的购置税可以抵税吗
  • 资产负债表所有者权益和利润表关系
  • 行政单位固定资产标准
  • Fedora25踏上Wayland的路上讲解
  • windows vista秘钥
  • windows server 2003 密钥
  • docker mysql 数据存储容器目录
  • vnc远程桌面linux
  • 联想电脑的样子
  • 拒绝远程操作
  • dl是什么文件
  • win10企业版怎么连接无线网
  • 应用商店如何更新软件
  • 双系统启动文件
  • 显示win7
  • win8桌面在c盘的路径
  • win10怎么关闭讲述人模式
  • opengl画实体
  • 骨骼动画程序设计
  • web前端开发工具哪个好
  • javascript ES6 新增了let命令使用介绍
  • android的中文
  • 交管12123怎么打电话
  • 佛山市国家税务局狮山分局简介
  • 什么是委托代征专用账户管理
  • 税务局打印申报表
  • 山东税务社保缴纳进入小程序
  • 税控系统技术维护费每年都要交吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设