squid是什么?
缓存服务器,即用来存储(内存及硬盘)用户访问的网页、图片、文件等等信息的专用服务器,这种服务器不仅可以使用户最快的得到他们想要的信息,而且大大减少了网络传输的数据量,缓存服务器经常是代理服务器。对于用户是不可见。
squid概述:
squid是一款缓存internet数据的软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要访问一个url时,它向squid发出一个申请,请求squid替它下载,然后squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,squid将缓存的该页面立即传给用户,加速用户的访问。
squid 可以代理HTTP, FTP, GOPHER, SSL 和 WAIS 协议,
暂不能代理POP, NNTP等协议。
squid主要功能
  1. 缓存网站内容,以达到为用户提供Web访问加速。
  2. 对用户的Web访问进行过滤控制
  3. 热点缓存,只缓存访问热度到达设定级别的网站内容。
  4. 合并回源,多个相同的请求只回源一次。
  5. ACL访问控制,可针对源IP、目的地IP、域名、URL、访问时间、单一最大连接数限制访问行为。或通过外部程序验证访问者(proxy_auth)。
  6. 网页内容篡改,可根据需求篡改网站内容。
  7. 网站头部篡改,可根据需求篡改请求头部。
  8. 可针对不同的域名或url配置不同的缓存规则。
工作流程
当代理服务器中有客户端需要的数据时:
  1. 客户端向代理服务器发送数据请求;
  2. 代理服务器检查自己的数据缓存;
  3. 代理服务器在缓存中找到了用户想要的数据,取出数据;
  4. 代理服务器将从缓存中取得的数据返回给客户端。
当代理服务器中没有客户端需要的数据时:
  1. 客户端向代理服务器发送数据请求;
  2. 代理服务器检查自己的数据缓存;
  3. 代理服务器在缓存中没有找到用户想要的数据;
  4. 代理服务器向Internet 上的远端服务器发送数据请求;
  5. 远端服务器响应,返回相应的数据;
  6. 代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。
三种代理服务器原理
标准的代理缓冲服务器
前提条件:
必须在每一个内部主机的浏览器上明确指名代理服务器的IP地址和端口号。
工作流程:
1.客户端上网时,每次都把请求发送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。
2.如果在本地缓冲区有目标文件,则直接将文件传给用户即可。
3.如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发送给客户端浏览器。
透明代理缓冲服务器
与标准代理服务器区别
透明代理缓冲服务器和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口),对于linux操作系统来说,透明代理使用Iptables或者Ipchains实现。因此不需要对浏览器作任何设置,。
工作流程:
透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。
反向代理缓冲器
以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从内部服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外表现为一个服务器。
作用:
1.可以降低原始WEB服务器的负载。
2.反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。
3.它位于WEB服务器和Internet之间,阻止了WEB服务器和Internet的直接通信。
工作流程:
  1. 如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。
  2. 如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发给用户。
应用场景
正向代理(本地网关)
a、正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。
b、正向代理还可以使用缓存特性减少网络使用率。
c、正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。
透明代理(cdn,架设于网络运营商主干机房)
a、提高各个地区访问者的访问速度。
b、减少源站压力。
c、减少网络运营商的网间结算费用。
d、节省网络运营商带宽资源。
反向代理(网站前端)
a、降低源站服务器的负载。
b、隐藏源站真实ip。
squid主要组成部分
服务名:squid
主程序:/usr/sbin/squid
配置目录:/etc/squid
主配置文件:/etc/squid/squid.conf
监听tcp端口号:3128
默认访问日志文件:/var/log/squid/access.log

squid之------基础知识的更多相关文章

  1. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  2. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  3. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  4. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  5. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  6. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  7. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  8. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  9. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. harbor设置开机自启

    [root@bogon harbor]# vi /lib/systemd/system/harbor.service [Unit]Description=RedisAfter=network.targ ...

  2. git clone 指定分支操作

    服务器迁移,而且原来本地开发是在同一个目录中切换不同的分支,感觉有点挫,于是打算一个文件目录对应一个分支,这样不会有太大的文件差异. 记录下来本次操作,可能以后还会用到. git初始化一般是这样. g ...

  3. dapper使用时性能优化

    数据库中类型 Area 数据库类型 varchar dapper 来操作数据库,不能直接写 sql      Area=@Area)   //dapper 对C#中的字符串类型 默认是对应数据库nva ...

  4. cocos2dx[3.2](11) 新事件分发机制

    在2.x中处理事件需要用到委托代理(delegate),相信学过2.x的触摸事件的同学,都知道创建和移除的流程十分繁琐. 而在3.x中由于加入了C++11的特性,而对事件的分发机制通过事件分发器Eve ...

  5. 微信小程序开发(一)----- 基础知识

    1.什么是微信小程序 概念:小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用,体现了“用完即走”的理念,用户不需要关心是否安装太多应用的问题, ...

  6. 深度解析Maven

    此文来源于: https://www.cnblogs.com/hafiz/p/8119964.html 带你深度解析Maven   一.What`s Maven? Maven是基于项目对象模型(POM ...

  7. python 并发编程 基于gevent模块 协程池 实现并发的套接字通信

    基于协程池 实现并发的套接字通信 客户端: from socket import * client = socket(AF_INET, SOCK_STREAM) client.connect(('12 ...

  8. Luogu P1948 [USACO08JAN]Telephone Lines

    题目 两眼题 二分一个\(lim\),然后跑最短路(边权\(\le lim\)的边长度为\(0\),\(>lim\)的长度为\(1\)),然后判断\(dis_{1,n}\le k\). #inc ...

  9. wpf学习笔记(1)

    wpf常用控件 0x01. 常用布局控件 1.Canvas 不会对子控件施加任何帮助,也不会施加任何限制 2.DockPanel 可以让子控件贴靠在自己四条边的任意一边 ,最后一个子控件充满剩余区域 ...

  10. opencv学习之显示图像-imshow函数

    序 上一篇opencv学习之读取图像-imread函数介绍完opencv读取图片函数imread,这次来介绍与它对应的图像显示函数imshow. imshow函数 imshow函数功能 imshow的 ...