squid代理介绍----传统代理

一、suqid的介绍

1.1、squid是什么?

Squid 是一个高性能的http代理服务器和web缓存服务器,可以很好的实现HTTP和FTP以及DNS查询、SSL等应用的缓存代理。

  • 1、代理用户向web服务器请求数据并进行缓存,可以过滤流量帮助网络安全。

  • 2、可以作为代理服务器链中的一环,向上级代理转发数据或直接连接互联网。

  • 3、可以用在局域网中,使局域网用户通过代理上网。

  • 4、可以将数据缓存在内存中,同时也缓存DNS查询的结果,还支持非模块化的DNS查询,对失败的请求进行消极缓存。

  • 5、Squid支持SSL,支持ACL访问控制。

Web代理的工作机制

  • 缓存网页对象,减少重复请求

1.2、squid的优势

  • 1、提高客户端访问速度。
  • 2、隐蔽内部主机的ip地址。
  • 3、部署简单,可以实现访问控制。

1.3、squid的作用

  • 1、代理上网 (传统代理,透明代理)
  • 2、网站静态页面缓存加速(反向代理)

二、squid的代理类型

  • 1、传统代理又叫做正向代理,适用于Internet,需明确指定服务端。

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

  • 3、反向代理

三、squid传统代理的部署

传统代理模式

  • 客户端必须在自己的浏览器里指定服务器的ip地址和监听的端口号,才能通过squid代理服务器**上网。

3.1、 案例介绍

如上图所示,在服务器B上构建Squid代理服务器,允许客户机指定squid代理服务器作为Web代理,访问网站服务器,但禁止通过代理下载超过10MB的文件,超过4MB的文件不进行缓存。

环境介绍

主机系统IP地址主要软件
squid代理服务器CentoS7.610.0.0.10squid-3.5.27.tar.gz
WEB服务器CentoS7.610.0.0.30Apache
客户机wind1010.0.0.2自带浏览器

3.2、部署过程

1、在squid服务器部署squid服务

1、解压squid的安装包
tar zxvf squid-3.5.23.tar.gz -C /opt/
cd /opt/squid-3.5.23/

//先安装编译包
yum -y install gcc gcc-c++ make pcre pcre-devel zlib-devel perl

//配置编译
./configure --prefix=/usr/local/squid \            //自定义安装路径
--sysconfdir=/etc \                                //单独将配置文件修改到/etc目录下   
--enable-arp-acl \                                 //可在ACL中设置通过MAC地址进行管理,防止客户端使用IP欺骗
--enable-linux-netfilter \                         //使用内核过滤
--enable-linux-tproxy \                            //支持透明模式
--enable-async-io=100 \                            //异步I/O提升存储性能,值可修改
--enable-err-language ="Simplify_Chinese" \        //错误信息的提示语言
--enable-underscore \                              //允许URL中有下划线
--enable-poll \                                    //使用 poll() 模式,提升性能
--enable-gnuregex                                  //支持GNU正则表达式

make && make install

//创建链接文件,优化路径
ln -s /usr/local/squid/sbin/* /usr/local/sbin/

//创建程序用户、组
useradd -M -s /sbin/nologin squid     

//改变目录属主
chown -R squid.squid /usr/local/squid/var/

2、修改配置文件,编写脚本优化服务启动项

vim /etc/squid.conf
//增添下句并注释deny
http_access allow all
#http_access deny all  

//在端口port下增添两行代码  
http_port 3128   
cache_effective_user squid        //添加   指定程序用户
cache_effective_group squid       //添加   指定账号基本组
coredump_dir /usr/local/squid/var/cache/squid

squid -k parse                    //检查配置文件语法
squid –k rec                      //重新加载配置文件
squid -z                          //初始化缓存目录
squid                             //启动服务
netstat -ntap | grep 3128         //查看服务是否启动

//编写优化脚本
cd /etc/init.d/
vim squid

#!/bin/bash
#chkconfig: 2345 90 25
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"
case "$1" in 
      start)
         netstat -natp | grep squid &> /dev/null
         if [ $? -eq 0 ]
         then
               echo "squid is running"
         else 
               echo "正在启动squid. . ."
               $CMD
         fi
        ;;
       stop)
         $CMD -k kill &> /dev/null
         rm -rf $PID &> /dev/null 
         ;;
      status)
         [ -f $PID ] &> /dev/null 
         if [ $? -eq 0 ]
         then
            netstat -natp | grep squid
         else
            echo "squid is not running"
         fi
	 ;;
      restart)
         $0 stop &> /dev/null
           echo "正在关闭 squid...."
         $0 start &> /dev/null 
           echo "正在启动 squid..."
	;;
      reload)
         $CMD -k reconfigure
	;;
      check)
         $CMD -k parse
	;;
        *)
         echo "用法: $0 {start|stop|status|reload|check|restart}"
         ;;
esac

chmod +x squid
chkconfig --add squid
chkconfig --level 35 squid on       //设置为开机自启动

service squid stop
service squid start
netstat -ntap | grep 3128

3、配置squid传统模式

vim /etc/squid.conf
http_port 3128
cache_mem 64 MB                     //内存空间大小
reply_body_max_size 10 MB           //允许下载最大文件大小
maximum_object_size 4096 KB         //允许保存缓存的空间最大对象大小
http_access deny all                //前面两行需要放在这行之上才生效

iptables -F                         //清空防火墙规则
iptables -t nat -F
iptables -I INPUT -p tcp --dport 3218 -j ACCEPT  
//-I:插入input链 -p:协议  允许3128端口访问外网的WEB服务器

//重新加载squid服务
service squid reload
netstat -ntap | grep 3128

4、配置web服务器

//关闭防火墙
systemctl stop firewalld
setenforce 0

//安装httpd
yum install httpd -y
echo "welcome to test web" > /var/www/html/index.html
systemctl start httpd

//进入目录下,设置测试内容
cd /var/www/html/
dd if=/dev/zero of=test1.tgz bs=1M count=11
dd if=/dev/zero of=test2.tgz bs=1M count=2

5、在客户端验证

设置IE浏览器----internet选项----连接-----局域网设置----勾选代理服务器,填写IP地址和端口号—IP:squid服务器地址 端口号为3128
在这里插入图片描述
验证:访问web服务器地址,并查看web服务器的访问日志access.log是代理服务器地址访问,
即squid代理服务器搭建成功。
在这里插入图片描述
查看access.log /var/log/httpd/access_log
在这里插入图片描述
之前设置了允许下载最大的文件大小为10M,test2文件可以下载,test1过大超出范围,提示不能下载。
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值