squid安装详解及各种部署方式

一、squid概述

1.1、squid简介

Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

  • 用来做前置的Web缓存,加快用户访问Web的速度
  • 代理内网用户访问互联网资源
  • 设置访问控制策略,控制用户的上网行为
  • 主要支持http、ftp等应用协议

1.2、代理工作的机制和好处

  • 缓存网页对象,减少重复请求
  • 访问速率提高
  • 隐藏客户机真是ip地址

1.3、代理的基本类型

  • 传统代理
            适用于internet ,需要指定服务端,开启代理ip地址

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

  • 反向代理
            squid反向代理服务器中缓存了该请求的资源,则将该请求直接返回给客户端;
            否则反向代理服务器将向后台的web服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用

  • 工作机制和优点
            缓存网页对象,减少重复请求
            将外网(互联网)请求,按照策略轮询或权重分配到内网web服务器
            安全,隐藏,避免用户直接访问web服务器;
    在这里插入图片描述

M6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NTYzOTM4,size_16,color_FFFFFF,t_70#pic_center)
1、客户端设置代理IP
2、客户请求的IP地址仍是WEB页面 ,不是squid代理服务器,因为客户端设置了一个代理IP。
3、客户端正常访问,但是会优先找代理服务器拿资源
4、如果缓存空间有资源,则不用找WEB拿资源
如果缓存空间没有资源squid去找WEB拿资源

二、搭建传统代理

2.1、传统代理搭建步骤

CentOS 7.4 web页面(apache) 20.0.0.23
CentOS 7.4 squid 20.0.0.22
CentOS 7.4 WIN10 20.0.0.88

2.1.1、搭建squid服务

把squid软件包传进去

[root@squid ~]# tar zxvf squid-3.4.6.tar.gz -C /opt
[root@squid ~]# cd /opt
[root@squid opt]# cd squid-3.4.6/
[root@squid squid-3.4.6]# yum -y install gcc gcc-c++
[root@squid 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

--prefix=/usr/local/squid \                   ## 指定的安装路径
--sysconfdir=/etc \                               ## 配置文件所存在的目录
--enable-arp-acl \                                 ## 启用acl访问控制列表
--enable-linux-netfilter \                       ## 内核过滤表
--enable-linux-tproxy \                         ## 支持透明代理模式
--enable-async-io=100 \                       ## 对于io的优化
--enable-err-language="Simplify_Chinese" \   ##报错的提示是简体中文形式
--enable-underscore \                          ## 在url中支持下划线
--enable-poll \                                      ## poll是Linux的字符设备驱动中的一个函数
--enable-gnuregex \                             ## url支持正则表达式

[root@squid squid-3.4.6]# make && make install  ## 进行编译并安装

[root@squid squid-3.4.6]# ln -s /usr/local/squid/sbin/squid /usr/local/sbin/    ## 做软连接,让squid命令便于被系统识别
[root@squid squid-3.4.6]# ll /usr/local/sbin/
总用量 34992
lrwxrwxrwx. 1 root root       22 1030 19:13 sbin -> /usr/local/squid/sbin/
-rwxr-xr-x. 2 root root 35829680 1030 19:08 squid

[root@squid squid-3.4.6]# useradd -M -s /sbin/nologin squid                  ## 创建squid用户,并指定家目录,指定shell环境,无法登录终端
[root@squid squid-3.4.6]# chown -R squid.squid /usr/local/squid/var    ## 给权限,有一个run目录,跑pid进程文件的

2.1.2、修改分配缓存空间的配置文件

[root@squid squid-3.4.6]# vim /etc/squid.conf    ## 主要分配缓存空间的配置文件

56: http_access allow all    ## 添加默认允许通过
57 :#http_access deny all   ## 把原来的默认拒绝注释掉

60: http_port 3128        ## squid 端口号 3128
61: cache_effective_user squid      ## 缓存管理用户 squid
62: cache_effective_group squid   ## 缓存管理组  squid

68:coredump_dir /usr/local/squid/var/cache/squid     ## 是一个容灾备份的目录

==》》wq

[root@squid squid-3.4.6]# squid -k parse   ## 查看语法有无错误
[root@squid squid-3.4.6]# squid -z   ## 语法没有问题后,初始化缓存,等几秒敲回车即可

[root@squid squid-3.4.6]# squid  #
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值