一、代理服务器应用场景分析

  想当年大学时候宿舍控制网速,苦了我们这帮魔兽党,一到晚上工会活动我们就得和全校上万名学生抢网速,作为坦克的我总是因为网速问题导致团灭,咱也是有自尊的人,一怒之下花300元办了个游戏加速器,果然顺畅了不少,宿舍朋友看我办代理,他们也买,总之第一次接触代理就是在大学时代,如今做技术了才开始深入探究这东西了,那么我们企业应用的代理不简简单单是加快网速的作用,还有很多功能,等我慢慢给你们说……

  代理服务器可以代替客户端向网站发出数据的请求,然后它会做一个缓存将得到的静态数据保存在代理服务器的缓存,缓存在它本地里面,等下一次有用户去进行请求的时候,代理服务器就会把这些数据直接交还给客户端,加快访问速度,企业要求的提升网速目的就实现了,常用的代理服务器软件有Squid、Nginx

  我们知道iptables 防火墙可以对局域网起到良好的保护作用,并提供了SNAT和DNAT地址转换策略,为共享接入互联网提供了方便,但是iptables不容易实现企业对员工的上网访问实施非法站点屏蔽,限制文件下载等管理和提升企业上网速度;我们知道它是包过滤型防火墙,工作在网络层和传输层,而代理服务器呐属于工作在应用层,相当于一个应用层的防火墙。

  Squid里面有ACL访问控制列表,可以自行定义哪些企业人员可以在什么时间段上网等功能,以及可以达到上网访问的数据的类别,比如我们只允许某些员工上网查资料,而不允许登录qq等操作,都可以通过Squid来精确的控制。但是有些应用程序不允许使用代理,这也算是它的一个弊端把,另外注意代理服务器不是一个网关服务器,不需要开路由转发功能,因此安全性要比iptabls好

二、代理的分类

  根据实际应用方式分类:传统代理、透明代理;下面还会介绍一种反向代理,我们可以简单地这样理解,普通代理是内网访问外网时配置的,反向代理就是外网需要访问我们局域网服务器配置的

  传统代理多用于Internet环境,比如说,为我们qq程序使用代理,可以隐藏本机真实的IP,为下载工具使用代理,可以避免我们服务器并发连接的限制,透明代理呐,多用于局域网环境,比如说咱们Linux网关中,启用透明代理,局域网主机就不用进行设置了,适合内部员工上网

1、传统代理

  普通的代理服务,须在客户机的浏览器、QQ聊天工具、下载软件等程序中手动设置代理服务器的地址和端口、由代理服务器代替客户机去请求数据

  例如访问某些国外网站,可以通过一台Internet上的代理服务器

2、透明代理

  客户机不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理

3、反向代理

  接受因特网的连接请求,并将请求转发给内网的服务器,获得数据后返回给因特网的客户端,类似于用iptables的DNAT策略发布服务器

三、代理的工作机制

  当我们客户机对网站进行访问请求时,代理服务器首先会查看自己的缓存里有没有客户机要访问的静态数据,同时访问网站,比对静态数据的一致性,如有不同,则更新静态数据,随网站提供的动态数据一起,把动静态数据一起交给客户机。

  以上过程我再拿一个例子解释一下,我们大家都在火车票代购点买过票吧,当我们需要买票时,我们先到达代购点,OK,这时就可以说我们(客户机)与代购点(代理服务器)联通了,另外,代购点的电脑(代理服务器)也肯定要与火车站售票网站(www.163.com)联通吧,Ok,我们发出买票请求,北京到南京的T888次列车,代购点肯定要查一下电脑,看一看此时我要买的火车票在此时还有没有吧,这就相当于代理服务器首先会查看自己的缓存里有没有客户机要访问的静态数据这一步,查完电脑,证明还有的话直接打印此次列车,就相当于把数据还给我们,如果查完没有票了,就会同步其他能到南京的列车,打印别的车次的火车票给我们,好了,这就是它整个的工作机制。

四、Squid安装与初始化

 ~]#tar zxvf squid-3.4.6.tar.gz -C /usr/src/
~]#cd /usr/src/squid-3.4.6/
~]#./configure --prefix=/usr/local/squid --sysconfdir=/etc/ --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-err-language="Simplify_Chinese" --enable-underscore --enable-poll --enable-gnuregex
~]#make && make install
~]#ln -s /usr/local/squid/sbin/squid /usr/local/sbin/
~]#useradd -M -s /sbin/nologin squid (这个用户主要用来设置初始化缓存目录的)
~]#chown -R squid:squid /usr/local/squid/var
~]#vim /etc/squid.conf
其中可见
http_port 3128(监听端口为3128,另外通过icp_port项也能配置监听端口)
添加运行用户和组还有提示用配置项
cache_effective_user squid
cache_effective_group squid
visible_hostname 192.168.1.1(当squid出现问题时,可提示192.168.1.1)
~]#squid -k parse (检查配置文件)
~]#squid -z (初始化目录,清除缓存)
~]#squid (运行服务)
~]#netstat -anpt | grep squid
tcp 0 0 :::3128 :::* LISTEN 6187/(squid-1) 扩展命令如下:
~]#killall -9 squid (关闭squid)
~]#squid -k reconfigure (重新加载,但不中断服务,配置更改后,建议用这种方式加载)

注:我写了一个脚本来控制squid服务,大家可以参考我SHELL脚本分类里的文章http://www.cnblogs.com/mangood/p/6033044.html,把脚本放在/etc/init.d/squid下添加为系统服务,然后加执行权限chmod +x /etc/init.d/squid,再加为系统默认启动服务chkconfig --add squid并chkconfig squid on

Squid代理服务器(一)——大家所用的游戏代理软件到底为何物?的更多相关文章

  1. CentOS 6.4下Squid代理服务器的安装与配置,反向代理

    CentOS 6.4下Squid代理服务器的安装与配置 一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件 ...

  2. CentOS 7 Squid代理服务器反向代理

    Squid反向代理 将不同的URL请求分发到后台不同的Web服务器上,通过squid反向代理,可以加速网站的访问速度,同时互联网用户只能看到反向代理服务器的地址,加强网站的访问安全 Squid反向代理 ...

  3. CentOS 7 Squid代理服务器正向代理-透明代理

    Squid是Linux系统中最常用的一款开源代理服务软件,主要提供缓存加速和应用层过滤控制的功能,可以很好的实现HTTP.FTP.DNS查询以及SSL等应用的缓存代理 透明代理:提供与传统代理相同的功 ...

  4. CentOS 7 Squid代理服务器正向代理-传统代理

    Squid是Linux系统中最常用的一款开源代理服务软件,主要提供缓存加速和应用层过滤控制的功能,可以很好的实现HTTP.FTP.DNS查询以及SSL等应用的缓存代理 传统代理:普通的代理服务,多见于 ...

  5. Squid代理服务器(四)——反向代理

    一.概念 反向代理主要实现的是我们内部网站的加速功能 ,许多大型的门户网站架构中都采用了反向代理加速,使用比较多的是nginx.squid等,通过squid反向代理加速网站的访问速度,可将不同的url ...

  6. 2-12-配置squid代理服务器加快网站访问速度

    本节所讲内容: squid服务器常见概念 squid服务器安装及相关配置文件 实战:配置squid正向代理服务器 实战:配置透明squid代理提升访问速度 实战:配置squid反向代理加速度内网web ...

  7. CentOS安装squid代理服务器

    Squid是一个Linux系统下优秀的代理服务器软件.Squid可以配置普通上网代理(正向代理).反向代理.透明代理.系统是CentOS6.2.Squid主机IP为192.168.1.100. 安装s ...

  8. 【转载】CentOS 6.4下Squid代理服务器的安装与配置

    一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用 ...

  9. CentOS 6.4下Squid代理服务器的安装与配置

    一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用 ...

随机推荐

  1. sql 2012先分离迁移mdf mlf 文件到别的机器后附加 数据库成只读的修复方法

    SQL Server2008附加数据库之后显示为只读时解决方法   从本地分离的数据库文件放到远程服务器上,附加数据库出现数据库为(只读情况) 阅读了以下两篇文章: 第一篇:http://blog.c ...

  2. CSS 透明

    filter:alpha(opacity=60);-moz-opacity:0.5;opacity: 0.5;

  3. Oracle T4-2用jumpstart方式安装Solaris10

    在安装过程中遇到了2个问题 1) 安装时无法识别硬RAID磁盘 T4-2的2块本地盘做了硬RAID,用jumpstart安装时无法识别硬RAID磁盘,报错信息如下: {0} ok boot net - ...

  4. Navigator - BOM对象

    Navigator 对象 Navigator 对象包含有关浏览器的信息. 注释:没有应用于 navigator 对象的公开标准,不过所有浏览器都支持该对象. Navigator 对象集合 集合 描述 ...

  5. Functions & Closures

    [Functions] 1.不带返回值的函数: 2.通过tuple返回元素 返回的tuple可按如下方式使用: 3.External Parameter: External parameter的使用: ...

  6. Priceless Notes

    [Priceless Notes] 1.人类对价格的绝对值没有准确的判断,但是价格或物体的相对值有较准确的判断. 2.物理强度与主观体验的关联成幂曲线.如60瓦的灯会让人觉得亮,但要让人觉得2倍亮的话 ...

  7. const与指针的纠缠

    当使用带有const的指针时其实有两种意思.一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容. 先说指向const的指针,它的意思是指针指向的内容是不能被修改的.它有两种写法. ...

  8. layer使用总结一配置

    导入layer.js文件即可,必须先导入jquery.js文件,因为layer是基于jquery 版本匹配,在此记录一下,layer使用1.8下载时是2.3的版本,对应的jquery使用1.8.3版本 ...

  9. Solidity部署问题

    Solidity是一个有诸多限制的语言,部署智能合约以及运行都需要gas. 部署的时候如果程序太大,所需要的gas会超过一个区块的上限,这样就没法部署合约.如果用metamask测试的话会弹出以下警告 ...

  10. 局部变量和static变量的区别

    static int a ; int b; scanf_s("%d %d",&a,&b); 01374212 lea eax,[b] 01374215 push e ...