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. CentOS 7 Docker 安装

    CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 本文以 CentOS 7.6 版本 ...

  2. Python+requests+excel接口测试

    2018-06-14   17:00:13 环境准备: - Python 3.7 - requests库 - xlrd 1.创建Excel文件 2.读取Excel文件 import xlrd clas ...

  3. java:Hibernate框架3(使用Myeclipse逆向工程生成实体和配置信息,hql语句各种查询(使用hibernate执行原生SQL语句,占位符和命名参数,封装Vo查询多个属性,聚合函数,链接查询,命名查询),Criteria)

    1.使用Myeclipse逆向工程生成实体和配置信息: 步骤1:配置MyEclipse Database Explorer: 步骤2:为项目添加hibernate的依赖: 此处打开后,点击next进入 ...

  4. java里null强转为某个类会报错吗?

    1.定义一个User类如下: /** * @author lizhibiao * @date 2018/11/27 17:21 */public class User{ private String ...

  5. LeetCode.927-独特邮箱地址(Unique Email Addresses)

    这是悦乐书的第356次更新,第383篇原创 01看题和准备 今天介绍的是LeetCode算法题中Easy级别的第218题(顺位题号是927).每封电子邮件都包含本地名称和域名,以@符号分隔. 例如,在 ...

  6. https原理以及golang基本实现

    关于https 背景知识 密码学的一些基本知识 大致上分为两类,基于key的加密算法与不基于key的加密算法.现在的算法基本都是基于key的,key就以一串随机数数,更换了key之后,算法还可以继续使 ...

  7. vue --》elementUI 中 el-table组件 如何实现点击列,让该列高亮显示 ?

    在elmentui官网中,只给了让当前行高亮显示的方法,但是如何让当前列高亮显示呢? <template> <div> <el-table :data="tab ...

  8. 微信小程序日历插件

    1/   wxml代码 <view class="timePick"> <picker mode="date" fields="mo ...

  9. MSF魔鬼训练营-3.1.2信息收集-通过搜索引擎进行信息搜集

    1.Google hacking 技术 自动化的Google搜索工具 SiteDigger https://www.mcafee.com/us/downloads/free-tools/sitedig ...

  10. DVWA、 DSVM 环境搭建简述

    DVWA(http://www.dvwa.co.uk/)是一个本地的漏洞演示环境基于PHP和Mysql . 另外还有基于Python的DSVM部署起来也十分简单.(https://github.com ...