一 Squid的工作机制与基本功能
大型服务器站点的服务器大都是UNIX类型的操作系统,所有很有必要了解UNIX.linux继承了UNIX的所有特点,所以了解linux很有必要..squid是linux下最为流行的代理服务器软件,支持对HTTP,FTP,GOPHER,SSL,WAIS等协议的代理;squid其作用在于,建立一个具有Internet地址的代理服务器,代替一些没有标准IP地址(内部地址)的机器,并与internet上的其他主机打交道.拥有内部地址的机器若想到internet上查找资料,就先把这个请求发给拥有标准IP地址的代理服务器,由代理服务器把这个请求通过它的标准IP地址发到请求的目标地址.然后,目标地址的服务器把返回结果发回给代理服务器,代理服务器再原封不动地把资料发给最初拥有内部IP地址的机器.这样就完成了一次内部机器访问internet的过程.若干拥有内部地址的机器就组成了内部网,代理服务器的作用就是沟通内部网和internet,解决内部网访问internet的问题.而且这种代理是不可逆的,internet上的主机不能访问任何一台拥有内部地址的机器,这样又可以保障内部资料的安全.squid不仅实现了对web信息的高效缓冲,同样支持FTP,GOPHER,HTTP请求.squid在内存中保存访问频繁的对象,并且在硬盘内维护一个健壮的访问对象数据库.squid同样支持SSL协议来缓冲安全连接,并且提供了复杂的访问控制机制.此外,squid能以级联(Hierarchically Linked)方式连接到另一个基于squid的缓冲代理服务器,来实现对访问页面的高效(streamlined)缓冲.squid可以工作在很多的操作系统中,如AIX,UNIX,FreeBSD,HP-UX,Linux等.squid对硬件的要求是,内存一定要大,不应小于128MB,硬盘最好使用服务器专用SCSI硬盘,CPU要求不高,400MHZ以上即可..
---------------------------------------------------------------------------------------------
二 配置squid,实现内部网访问internet
路由器有些特征就好比一个代理服务器,将连接在路由器LAN口的所有机器可以通过它有条不絮的访问internet,WAN口则与modem连接来访问internet,我的机器也是连接在路由器上的其中一台,这里根据我这里的实际情况来配置代理服务器,实现另一个局域网来访问internet.
路由器地址:192.168.5.1,所以路由器管辖的网段192.168.5.*(*代表2-254),在我linux操作系统的机器上做以下操作.
#netconfig(进入网络配置工具,给第一块网卡(以下简称eth0)做以下配置)
IP address:192.168.5.3(设置主机IP)
Netmask:255.255.255.0(子网掩码默认)
Deault gateway(IP):192.168.5.1(网关地址)
Primary nameserver:202.103.24.68(电信提供的域名服务器地址)
#ifconfig eth1 up(激活第二块网卡(简称eth1,第二块网卡必须是存在的))
#ifconfig eth1 192.168.4.1 netmask 255.255.255.0(设置eth1的IP与netmask)
#vi /etc/sysconfig/network-scripts/ifcfg-eth1(创建一个记录eth1信息的文件,添加以下内容)
DEVICE=eth1(设备名)
ONBOOT=yes(充许连接)
BOOTPROTO=static(获得IP方式是静态的,也就是手动设置的IP)
IPADDR=192.168.4.1(网卡的IP)
NETMASK=255.255.255.0(网卡的掩码)
GATEWAY=192.168.4.1(网关)
#service network restart(重启网络服务)
#ifconfig(查看网络信息,会看到eth1的相关信息)
#ping www.baidu.com(通过与路由器连接的eth0来验证与internet是否能通信)
#ping 192.168.4.2(通过eth1来验证是否能和192.168.4网段的机器通信,可以将.5网段的某台机器改为192.168.4.2(.4网段))
#vi /etc/squid/squid.conf(编辑此文件,修改以下内容)
http_port 192.168.5.3:3128(去掉注释,添加eth0的IP,3128是http默认的端口,可以改变,但不能和其它程序的端口号重复,可以在/etc/services文件中查看)
cache_mgr [email protected](去掉注释,将值改为linux管理员的邮箱,这样客户机访问internet出错时,可以给这个邮箱发邮件说明问题)
cache_mem 170 MB(去掉注释,修改缓冲内存为170MB,一般为主机内存的1/3)
cache_dir ufs /var/spool/squid 100 16 256(ufs是存储类型,/var/spool/squid是缓存数据保存目录,16是一级目录的数目,256是二级目录的数目,这里保持默认设置)
cache_effective_user squid(去掉注释,修改基值为squid用户)
cache_dffective_group squid(添加这行内容,设置缓存数据的存取用户)
http_access allow all(去掉注释,改变设置为allow all,即允许所有客户端访问)
#service squid restart(重启squid)
如果有些公司对代理服务器,有特殊需求,有些情况需要代理服务器来承载一些连接请求。例如A公司总部,需要代理连接公司远端机房erp服务,可以通过代理,而访问互联网不需要,但是A公司在当地城市还有分部B,A和B之间是通过vpn互联,为了图方便,A公司在总部建立一台代理,给内部人员使用,而同时这台代理服务器,也承载着B分部访问请求,由于A和B之间vpn时常会端口,很不稳定,这就会到B分部,无法连接到代理服务器,导致B分部,erp作业的中断。但是我们可以采取一个办法来解决这个问题。在B分部建立一台代理,让B分部通过新建代理练级公司机房erp服务器,同时可以做到A和B之间通过vpn做主备冗余。这样既可以解决vpn专线不稳定导致B无法访问,有可以在vpn正常的情况,B分部这台代理服务器宕机时,走A总部代理服务器连接erp。这样做即可以解决vpn不稳定的事,也可以做到冗余备份。