Squid缓存代理服务器

1、squid的概念

squid是一种用来缓存Internet数据的软件。接受来自人们需要下载的目标(object)的请求并适当的处理这些请求。也就是说,如果一个人想下载一web界面,他请求squid为他取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后,squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时, squid可以简单的从磁盘中读到它,那样数据会立即传输到客户机上。

2、代理的工作机制

当客户机通过代理来请求web页面时,指定的代理服务器会先检查自己的缓存,如果缓存中已经有客户机需要访问的页面,则直接将缓存中的页面反馈给请求的客户端。如果缓存中没有,则由代理服务器向web服务器发起访问请求,当获得返回的web页面后,缓存服务器首先将数据保存到自己本身的缓存中,然后再发送给客户端.

3、作用

替客户机向网站请求数据,从而可以隐藏用户的真实 IP 地址。

将获得的网页数据(静态 Web 元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应

4、squid服务器搭建(仅传统代理)

主机 IP   系统

缓存代理服务器 192.168.2.10 CentOS 7

Web服务器   192.168.2.11 CentOS 7

客户机;使用物理机 192.168.2.1 Windows10

网络yum源下载软件包

[root@cjq10 ~]#Wget http://www.squid-cache.org/Versions/v4/squid-4.8.tar.gz 

安装依赖关系包

[root@cjq10 ~]#yum install libtool-ltdl-devel libxml2-devel libcap-devel perl gcc autoconf automake make

解压
[root@cjq10 ~]#tar xf squid-4.8.tar.gz

[root@cjq10 ~]#cd squid-4.8

预编译

[root@cjq10 squid-4.8]#./configure --prefix=/usr/local/squid --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-err-language="Simplify_Chinese" --enable-underscore --enable-poll --enable-gnuregex

编译和安装(时间较长)
[root@cjq10 squid-4.8]#make && make install

创建运行用户

[root@cjq10 squid-4.8]#useradd -M -s /sbin/nologin squid

修改权限

[root@cjq10 squid-4.8]#chown -R squid.squid /usr/local/squid/var

添加软连接

[root@cjq10 squid-4.8]#ln -s /usr/local/squid/sbin/squid  /usr/local/sbin/

添加squid运行的用户及组

[root@cjq10 ~]#echo 'cache_effective_user squid' >> /usr/local/squid/etc/squid.conf

[root@cjq10 ~]#echo 'cache_effective_group squid' >> /usr/local/squid/etc/squid.conf

初始化缓存目录

[root@cjq10 ~]# squid -z

启动Squid

[root@cjq10 ~]# squid

查看Squid的运行用户

[root@cjq10 ~]#ps -ef | grep squid

查看Squid的端口号

[root@cjq10 ~]# netstat -antup | grep 3128

创建squid服务脚本

vim /etc/init.d/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 /etc/init.d/squid

把服务加入chkconfig管理

chkconfig --add squid

3和5自启(7个启动级别)

chkconfig --level 35 squid on

5、客户机192.168.2.1配置

打开浏览器右上角 三个点

找到inernet选项

6、web服务器192.18.2.11配置

[root@cjq11 ~]# yum -y install httpd

[root@cjq11 ~]# systemctl start httpd

[root@cjq11 ~]# netstat -antup | grep 80

7、测试

squid服务器动态查看访问日志

[root@cjq10 ~]# tail -f /usr/local/squid/var/logs/access.log

Web服务器动态查看访问日志

[root@cjq11 ~]# tail -f /var/log/httpd/access_log

到浏览器访问192.168.2.11 web服务器

查看squid新增动态日志

查看squid日志我们看到了客户机访问web服务器的访问记录

查看http新增动态日志

查看web服务器我们看到实际上给web服务器发送访问请求的是squid缓存代理服务器的IP,而不是客户机的IP。说明设置成功

  • 27
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值