squid
Squid cache(简称为Squid)是一个流行的自由软件,它符合GNU通用公共许可证。Squid作为网页服务器的前置cache服务器,可以代理用户向web服务器请求数据并进行缓存,也可以用在局域网中,使局域网用户通过代理上网。Squid主要设计用于在Linux一类系统运行。
Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户想要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。
squid优点
加快访问速度,节约通信带宽
防止内部主机受到攻击
限制用户访问,完善网络管理
3.代理服务器原理
代理服务器接受到请求后,首先与访问控制列表中的访问规则相对照,如果满足规则,则在缓 存中查找是否存在需要的信息。
客户端B向代理服务器提出相同的请求。代理服务器也首先与访问控制列表中的访问规则相对 照。如果满足规则,则将缓存中的信息传送给客户端B
4. Squid 主要组成部分
服务名:squid
主程序:/usr/sbin/squid
配置目录:/etc/squid
主配文件:/etc/squid/squid.conf
监听tcp端口号:3128
默认访问日志文件:/var/log/squid/access.log
以下是一些squid的基本配置参数解释(三种代理基本配置)
http_port 3128 //设置监听的IP与端口号
cache_mem 64 MB //设置内存缓冲的大小
cache_dir ufs /var/spool/squid 2000 16 256 //设置硬盘缓冲大小
//ufs 存储格式 2000 目录空间 16一级子目录 256 二级子目录
cache_effective_user squid //设置缓存的有效用户
cache_effective_group squid //设置缓存的有效用户组
dns_nameservers 192.168.0.254 //设置DNS服务器地址,一般可以不设置,默认使用服务器自己设置的dns
cache_access_log /var/log/squid/access.log //设置访问日志文件
cache_log /var/log/squid/cache.log //设置缓存日志文件
visible_hostname 192.168.0.20 //设置squid主机名称
以上全局参数根据你自己的需要修改
其实linux下的服务器配置文件最好就是squid,它对每个参数都有解释,而且很多有很多实例
5.squid中的访问控制
语法:acl 列表名称 列表类型 [-i] 列表值
列表类型
* src=\‘#\‘" /span>
* dst : 目标地址 (即服务器IP地址)
* srcdomain : 源名称 (即客户机名称)
* dstdomain : 目标名称 (即服务器名称)
* time : 一天中的时刻和一周内的一天
* url_regex : URL 规则表达式匹配
* urlpath_regex: URL-path 规则表达式匹配,略去协议和主机名
* proxy_auth : 通过外部程序进行用户验证
* maxconn : 单一 IP 的最大连接数
6squid三种代理
a 普通代理
一个标准的代理缓冲服务被用于缓存静态的网页(例如:html文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的IP地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。
客户端端要在自己的浏览器里指定代理服务器的ip 和监听的端口,才能通过代理服务器访问
b透明代理
明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux操作系统来说,透明代理使用Iptables或者Ipchains实现。因为不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet服务器提供商)特别有用。
配置:
客户端不需要在浏览器里指定代理服务器的ip地址和监听的端口,只要把网关地址指向代理服务器内网接口的Ip地址就可以了。
服务器上的配置与标准的代理缓冲服务器几乎一样
防火墙规则
iptables -t nat -A PREROUTING -i eth0 -s 1。1.1.0/8 -p tcp --dport 80 -j REDIRECT --to-port 3128
service iptables save 保存规则
-i 指定数据包进入的接口
-s 指定数据包来自于哪个网段
-p 数据传输协议
--dport 目标端口
客户端
c反向代理
反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载。反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。它位于本地WEB服务器和Internet之间,处理所有对WEB服务器的请求,组织了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。这种方式通过降低了向WEB服务器的请求数从而降低了WEB服务器的负载。
配置:
cache_peer指定后端真正的网站服务器的ip地址,parent 当前代理服务器与后端网站服务器的关系,80 网站服务器监听的端口号,0 当前代理服务器与网络中其他代理服务器通信的接口,originserver 指定提供网站服务的真正的主机
客户端访问代理服务器,再由代理服务器来访问相应的web服务
看反向代理成功了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
本文出自 “一起去奋斗” 博客,请务必保留此出处http://zwltc.blog.51cto.com/6019176/1439730
原文:http://zwltc.blog.51cto.com/6019176/1439730