代理的作用:

  共享网络 ;
  加快访问速度,节约通信带宽 ;
  防止内部主机受到攻击 ;
  限制用户访问,完善网络管理;

标准代理:

  首先要在内部主机指定代理服务器的IP和port,然后通过代理服务器访问外部资源,代理服务器收到访问请求后,会查询本地是否已缓存这个资源,如果存在直接响应给内部机器;如果本地缓存没有,则代理服务器去目标网站请求资源,然后响应给内部主机,并且缓存到本地一份。

透明代理:

  透明代理与标准代理功能完全相同,只是代理方式不同,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口),需要内部主机将网关指向代理服务器。

反向代理:

  互联网用户向WEB服务器发送请求,如果请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发给用户。这种方式通过降低了WEB服务器的请求数从而降低了WEB服务器的负载。

安装:

  可直接yum安装

  yum install -y squid

参数配置:

  acl:acl ACLNAME ACLTYPE PARAM1 PARAM2...

    eg:acl Safe_ports port 443 80 21

    • src:客户端的p
    • dst:目标server的ip
    • srcdomain:源URL
    • dstdomain:目标server的URL
    • port:端口号
    • proto:通信协议
    • http_status:http状态
    • method:方法
    • url_regex:URL规则表达式匹配
    • urlpath_regex:URL-path规则表达式匹配,略去协议和主机名
    • maxconn:单一IP的最大连接数

  http_access:http_access allow|deny [!]ACLNAME

    对设定的aclname加上权限,禁止或允许aclname

    eg:http_access deny !Safe_ports  #禁止除了Safe_ports以外的端口

  http_port:http_port 3128

    squid的工作端口

  cache_mem:cache_mem 512 MB

    指定用于缓存的内存大小

  cache_dir:cache_dir ufs Dirname Mbytes L1 L2 [options] 设置缓存目录

    eg:cache_dir ufs /app/squid 5000 16 256

    ufs:squid的储存格式

    Dirname :指定缓存目录

    Mbytes:可以使用磁盘的大小

    L1:一级子目录的数量

    L2:二级子目录的数量

  refresh_pattern:refresh_pattern regex min percent max 设置缓存过期时间(分钟为单位)

    如果时间小于min,缓存没有过期

    如果时间小于(max-min)*percent,也没有过期

    否则缓存是stale

    eg:refresh_pattern .cvd$       720     0%  1080

查询squid情况
  squidclient -p 3128 mgr:info

下面以代理yum源为例,别的机器可以通过它安装yum包,yum源为中国科技大学镜像站。

squid server端

acl localnet src 172.0.0.0/8
acl Safe_ports port 443 80 21
acl http proto HTTP FTP
acl CONNECT method CONNECT
acl web dstdomain .ustc.edu.cn  #设置中国科技大学镜像网站 http_access deny !Safe_ports
#http_access deny CONNECT
http_access deny !web
http_access allow web
http_access allow localnet
http_access deny all
http_port 3128 cache_mem 512 MB
#缓存目录 后面的是缓存的大小 二级目录和三级目录数量
cache_dir ufs /app/squid 5000 16 256
#设置squid的数据堆目录
coredump_dir /app/squid #expire time minute min percent max
#if < min Cache is refresh
#elif < (max-min)*percent Cache is refresh
#else Cache is stale
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

客户端

#vim /etc/yum.conf
proxy=http://172.30.100.111:3128

或者定义全局http_proxy

#vim /etc/profile
export http_proxy=http://172.30.100.111:3128  #添加代理ip和port
export https_proxy=https://172.30.100.111:3128  #https
#source /etc/profile

如果客户端可以安装yum包,证明配置无误!

Linux squid代理的更多相关文章

  1. Linux实战教学笔记43:squid代理与缓存实践(二)

    第6章 squid代理模式案例 6.1 squid传统正向代理生产使用案例 6.1.1 squid传统正向代理两种方案 (1)普通代理服务器 作为代理服务器,这是SQUID的最基本功能:通过在squi ...

  2. Linux实战教学笔记42:squid代理与缓存实践(一)

    第1章 Squid介绍 1.1 缓存服务器介绍 缓存服务器(英文意思cache server),即用来存储(介质为内存及硬盘)用户访问的网页,图片,文件等等信息的专用服务器.这种服务器不仅可以使用户可 ...

  3. linux初学者-squid代理篇

     linux初学者-squid代理篇 Squid代理服务器是一种缓存服务器,一般分为正向代理和反向代理. 1.正向代理 客户端因为网络或者其他的问题,不能访问到一台Apache服务器,如果要访问到,则 ...

  4. Linux下squid代理缓存服务环境部署

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

  5. squid代理加用户认证

    squid代理加用户认证 用authentication helpers添加身份验证 有如下几种认证方式 :=> NCSA: Uses an NCSA-style username and pa ...

  6. Squid代理配置

    更改squid错误页面时间不对的问题解压源码包,进入此路径/usr/local/squid/share/errors/zh-cn(需要更改该目录下的所有文件find -type f |xargs se ...

  7. squid代理与缓存(下)

    squid代理与缓存(下) 6. squid代理模式案例 6.1 squid传统正向代理生产使用案例 6.1.1 squid传统正向代理两种方案 (1)普通代理服务器 作为代理服务器,这是SQUID的 ...

  8. squid代理与缓存(上)

    squid代理与缓存(上) 1. Squid介绍 1.1 缓存服务器介绍 缓存服务器(英文意思cache server),即用来存储(介质为内存及硬盘)用户访问的网页,图片,文件等等信息的专用服务器. ...

  9. squid 代理服务器安装配置

    ubuntu16.04 安装squid代理服务器配置 本文参考 http://www.cnblogs.com/newflypig/archive/2012/09/28/2862000.html 1,删 ...

随机推荐

  1. IEC104协议规约解析

    一.四遥信息体基地址范围 104调度规约有1997年和2002年两个版本,在流程上没有什么变化,02版只是在97版上扩展了遥测.遥信等信息体基体址,区别如下: 类别 1997版基地址 2002版基地址 ...

  2. ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门

    一.前言 1.本教程主要内容 ASP.NET Core + 内置日志组件记录控制台日志 ASP.NET Core + NLog 按天记录本地日志 ASP.NET Core + NLog 将日志按自定义 ...

  3. MVC文件的上传、删除

    public ActionResult FileUpload()        {            Users users = new Users();            users = ( ...

  4. docker swarm的常用操作

    1. 说明 本文档针对docker swarm操作. 针对的系统是以一个本地的测试系统为例.其中机器信息如下,172.16.1.13作为docker swarm的管理机. 本地测试的机器列表信息: 主 ...

  5. LeetCode算法题-Longest Harmonious Subsequence(Java实现)

    这是悦乐书的第270次更新,第284篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第136题(顺位题号是594).我们定义一个和谐数组是一个数组,其最大值和最小值之间的差 ...

  6. LeetCode算法题-Longest Uncommon Subsequence I(Java实现)

    这是悦乐书的第252次更新,第265篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第119题(顺位题号是521).给定一组两个字符串,您需要找到这组两个字符串中最长的不同 ...

  7. 【Python 19】BMR计算器3.0(字符串分割与格式化输出)

    1.案例描述 基础代谢率(BMR):我们安静状态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上. 计算公式: BMR(男) = (13.7*体重kg)+(5.0*身高cm)-(6. ...

  8. styled components草根中文版文档

    1.styled components官网网址 https://www.styled-components.com/docs   以组件的形式来写样式. 1.1安装 yarn add styled-c ...

  9. 【转】Android调用Sqlite数据库时自动生成db-journal文件的原因

    数据库为了更好实现数据的安全性,一半都会有一个Log文件方便数据库出现意外时进行恢复操作等.Sqlite虽然是一个单文件数据库,但麻雀虽小五脏俱全,它也会有相应的安全机制存在 这个journal文件便 ...

  10. 详解Linux双网卡绑定之bond0

    1.什么是bond? 网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术.Kernels 2.4.12及以后的版本均供bonding模块 ...