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
客户机ip:10.1.6.173
测试: 客户机访问通过Squid Server 访问HTTP Server. 这里需要在客户机上修改/etc/hosts,添加二行10.1.6.200 www.testone.com
10.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.com
10.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.conf
http_port 3128#http_port告诉squid在哪个端口监听http请求,默认3128
http_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 all
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12# RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
复制代码代码如下:
acl Safe_ports port 80
acl purge method PURGE
acl CONNECT method CONNECT
acl manager proto cache_object
复制代码代码如下:
#利用前面定义的acl,定义访问控制规则
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_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_peerwww.testone.comparent800no-queryoriginservername=one
cache_peerwww.testtwo.comparent800no-queryoriginservername=two
cache_peer_domainonewww.testone.com
cache_peer_domaintwowww.testtwo.com
复制代码代码如下:
#设置squid用户及用户组
cache_effective_user proxy
cache_effective_groupproxy
复制代码代码如下:
#下面是关于日志文件
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log none
复制代码代码如下:
mime_table /usr/share/squid/mime.conf
pid_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# ll
total 8
drwxr-xr-x 3 proxyproxy4096 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 -z
2013/02/22 20:31:10| Creating Swap Directories
启动squid服务
复制代码代码如下:
root@10.1.6.200:squid# /etc/init.d/squid start
Starting Squid HTTP proxy: squid.
root@10.1.6.200:squid# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp00 0.0.0.0:39360 0.0.0.0:LISTEN1383/rpc.statd
tcp00 127.0.0.1:833 0.0.0.0:LISTEN1929/famd
tcp00 0.0.0.0:111 0.0.0.0:LISTEN1372/portmap
tcp00 10.1.6.200:80 0.0.0.0:LISTEN2491/(squid)
tcp00 0.0.0.0:22000 0.0.0.0:LISTEN1623/sshd
tcp00 0.0.0.0:31280.0.0.0:LISTEN2491/(squid)
tcp00 127.0.0.1:250.0.0.0:LISTEN1890/exim4
udp00 0.0.0.0:58152 0.0.0.0:2491/(squid)
udp00 0.0.0.0:31300.0.0.0:2491/(squid)
udp00 0.0.0.0:711 0.0.0.0:1383/rpc.statd
udp00 0.0.0.0:111 0.0.0.0:1372/portmap
udp00 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.
推荐系统
微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载
语言:中文版系统大小:5.13GB系统类型:Win11微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Win11 64位 Office办公版(免费)优化 1、保留 Edge浏览器。 2、隐藏“操作中心”托盘图标。 3、保留常用组件(微软商店,计算器,图片查看器等)。 5、关闭天气资讯。
Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载
语言:中文版系统大小:4.75GB系统类型:Win11Ghost Win11 21H2是微软在系统方面技术积累雄厚深耕多年,Ghost Win11 21H2系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Ghost Win11 21H2是微软最新发布的KB5019961补丁升级而来的最新版的21H2系统,以Windows 11 21H2 22000 1219 专业版为基础进行优化,保持原汁原味,系统流畅稳定,保留常用组件
windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载
语言:中文版系统大小:5.31GB系统类型:Win11windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化
微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载
语言:中文版系统大小:5.31GB系统类型:Win11微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载
微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件
语言:中文版系统大小:0MB系统类型:Win11微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为
雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载
语言:中文版系统大小:4.75GB系统类型:雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统
雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO
语言:中文版系统大小:5.91GB系统类型:Win7雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户
番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载
语言:中文版系统大小:3.91GB系统类型:Win7欢迎使用 番茄花园 Ghost Win7 x64 SP1 2022.07 极速装机版 专业装机版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,集成最全面的硬件驱动,精心挑选的系统维护工具,加上独有人性化的设计。是电脑城、个人、公司快速装机之首选!拥有此系统
相关文章
- pavsched.exe是什么进程 pavsched进程查询
- linux ulimit命令用法解析
- Windows Server 2008故障转移群集简介
- Win10一周年Build14295预览版操作中心曝光 云端同步更省事
- Win10预览版14366自制中文ISO镜像下载 32位/64位
- win8如何彻底关闭uac win8彻底关闭烦人的uac图解教程
- 让FreeBSD更安全(FreeBSD安全设置)
- Win10测试用户一次转正机会 免费升级正版win10
- Xbox One版Win10创造者更新预览版已知问题汇总
- Win10桌面版年度更新红石预览版14295更新内容和已知问题汇总
- 2016年Win10 Mobile红石更新抢先看 预期新功能/发布时间表
- Win7怎么以其他用户身份运行程序 Win7快速切换用户身份运行程序教程
- 怎样在windows的cmd命令行下创建删除文件和文件夹
- Win10预览版14328使用Ink Workspace书写功能介绍
- Win8.1怎么开机自动联网?Win8.1自动宽带连接设置详细教程
- win10 mobile预览版14327修复内容和已知问题汇总 微信闪退已解决
- Win10 OEM上线:家庭版109美元、专业版149美元
- cmd运行命令的10个另类用法
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 3电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 4雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
常用系统
- 1深度技术 Ghost Win7 x64 Sp1 电脑城纯净版2019年12月(64位) ISO镜像高速下载
- 2新萝卜家园GhostWin7 SP1电脑城极速装机版2018年4月(32位) 提供下载
- 3电脑公司Ghost Win8.1 x32 喜迎国庆 精选纯净版2021年10月(免激活) ISO镜像高速下载
- 4新萝卜家园Ghost Win8.1 X64位 纯净版2020年1月(自动激活) ISO镜像高费下载
- 5新萝卜家园电脑城专用系统 Windows10 x86 企业版2019年6月(32位) ISO镜像高速下载
- 6深度技术 Ghost Win7 x64 Sp1 电脑城纯净版2020年11月(64位) ISO镜像高速下载
- 7新萝卜家园 GhostWin7 SP1 电脑城极速稳定版2022年2月(32位) ISO镜像高速下载
- 8笔记本系统Ghost Win8.1 (X64) 喜迎国庆 全新纯净版2020年10月(永久激活) 提供下载
- 9雨林木风Ghost Win8.1 (X64) 极速纯净版2021年3月免激活) ISO镜像高速下载
- 10深度技术 GHOSTXPSP3 电脑城极速装机版 2020年3月 ISO镜像高速下载