squid缓存服务器——传统模式

一、web代理的工作机制
两台服务器
传统模式中,客户端知道自己是一个代理
透明模式中,不需要对客户端进行设置

二、代理的基本类型

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

三、使用代理的好处

  • 提高web’访问速度
  • 隐藏客户机的真实IP地址

四、实操演示传统代理
web端IP:192.168.247.160
squid端IP:192.168.247.206
win10客户端IP:192.168.247.200
1.修改主机名,便于识别

[[email protected] ~]# hostnamectl set-hostname squid
[[email protected] ~]# su
[[email protected] ~]# 

[[email protected] ~]# hostnamectl set-hostname web
[[email protected] ~]# su
[[email protected] ~]#

squid为了缓存页面对象,需要设置缓存空间,后面会设置

2.编译安装squid
首先解压squid,安装编译工具

[[email protected] ~]# mkdir /abc
mkdir: cannot create directory ‘/abc’: File exists
[[email protected] ~]# mount.cifs //192.168.254.10/linuxs /abc
Password for [email protected]//192.168.254.10/linuxs:
[[email protected] ~]# cd /abc
[[email protected] abc]# tar zxvf squid-3.4.6.tar.gz -C /opt
[[email protected] abc]# cd /opt
[[email protected] opt]# ls
mysql-5.7.17  rh  squid-3.4.6
[[email protected] opt]# cd squid-3.4.6/
[[email protected] squid-3.4.6]# ls
acinclude     configure     CREDITS  INSTALL      QUICKSTART         src
aclocal.m4    configure.ac  doc      lib          README             test-suite
bootstrap.sh  contrib       errors   libltdl      RELEASENOTES.html  tools
cfgaux        CONTRIBUTORS  helpers  Makefile.am  scripts
ChangeLog     COPYING       icons    Makefile.in  snmplib
compat        COPYRIGHT     include  po4a.conf    SPONSORS
[[email protected] squid-3.4.6]# yum install gcc gcc-c++ make pcre* perl* -y

configure 配置,make安装
acl 防控制列表,可在acl中设置通过mac地址进行管理,防止IP七篇

  • netfilter 内核过滤
  • tproxy 支持透明模式
  • io 对于io的优化,异步I/O,提升存储性能
  • err-language 报错信息设置为中文
  • underscore 允许url中支持下划线
  • poll 提升功能性,使用poll()模式
  • gnuregex 支持正则表达式gnu
    [[email protected] 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
    [[email protected] squid-3.4.6]# make && make install
    [[email protected] squid-3.4.6]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/    //优化命令路径
    [[email protected] squid-3.4.6]# useradd -M -s /sbin/nologin squid                 //创建squid程序用户
    [[email protected] squid-3.4.6]# chown -R squid.squid /usr/local/squid/var/        //给程序用户squid的程序目录的权限
    [[email protected] squid-3.4.6]# vim /etc/squid.conf           //编辑配置文件
    55 # And finally deny all other access to this proxy
    56 http_access allow all
    #允许所有,关闭拒绝所有,若是拒绝所有,需要放到配置文件的最下方,否则会自deny生效起,后面的参数都不会生效
    57 #http_access deny all
    58
    59 # Squid normally listens to port 3128
    60 http_port 3128
    61 cache_effective_user squid
    #增加用户和组
    62 cache_effective_group squid
    [[email protected] squid-3.4.6]# squid -k parse
    //验证语法
    [[email protected] squid-3.4.6]# squid -z
    //初始化缓存,然后squid启用
    [[email protected] squid-3.4.6]# squid         //启动
    [[email protected] squid-3.4.6]# netstat -natp | grep 3128
    tcp6       0      0 :::3128                 :::*                    LISTEN      71471/(squid-1)  

    3.创建systemctl 启动脚本

    [[email protected] squid-3.4.6]# cd /etc/init.d/
    [[email protected] 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

    4.给脚本执行权限,加入到chkconfig中

    [[email protected] init.d]# chmod +x squid
    [[email protected] init.d]# chkconfig --add squid
    [[email protected] init.d]# chkconfig --level 35 squid on
    [[email protected] init.d]# netstat -natp | grep 3128
    [[email protected] init.d]# service squid start
    正在启动 squid...
    [[email protected] init.d]# netstat -natp | grep 3128
    tcp6       0      0 :::3128                 :::*                    LISTEN      102925/(squid-1)
    [[email protected] init.d]# service squid stop
    [[email protected] init.d]# netstat -natp | grep 3128
    [[email protected] init.d]# setenforce 0

    5.设置缓存参数

    [[email protected] init.d]# vim /etc/squid.conf
    http_port 3128
    cache_effective_user squid
    cache_effective_group squid
    //增加下面三行
    cache_mem 64 MB         //缓存64M的内容
    reply_body_max_size 10 MB       //禁止下载的超过10MB的文件
    maximum_object_size 4096 KB     //超过4MB的文件不进行缓存

    增加的参数放在http_access deny all 前面才会生效

    6.设置iptables规则

    [[email protected] init.d]# iptables -F
    //清空规则
    [[email protected] init.d]# iptables -L
    //查看规则
    [[email protected] init.d]# iptables -t nat -F
    [[email protected] init.d]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
    [[email protected] init.d]# service squid reload
    [[email protected] init.d]# netstat -natp | grep 3128
    tcp6       0      0 :::3128                 :::*                    LISTEN      17863/(squid-1)

    7.配置web端和客户端

    [[email protected] ~]# systemctl stop firewalld
    [[email protected] ~]# setenforce 0
    [[email protected] ~]# yum install httpd -y
    [[email protected] ~]# netstat -natp | grep 80
    [[email protected] ~]# systemctl start httpd
    [[email protected] ~]# netstat -natp | grep 80
    tcp6       0      0 :::80                   :::*                    LISTEN      128136/httpd 

    打开一台虚拟机win10,去访问web

    查看web端httpd的访问日志

    [[email protected] httpd]# cd /var/log/httpd/
    [[email protected] httpd]# cat access_log
    192.168.247.200 - - [02/Feb/2020:10:58:32 +0800] "GET /noindex/css/fonts/Semibold/OpenSans-Semibold.ttf HTTP/1.1" 404 246 "http://192.168.247.160/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240"

    开始配置代理




    输入代理服务器ip和端口号,点击保存,然后关闭,关闭浏览器
    重新打开浏览器,再次访问web

    再次查看httpd日志
    此时可以发现访问ip变成了192.168.247.206

    [[email protected] httpd]# cat access_log
    192.168.247.206 - - [02/Feb/2020:11:10:47 +0800] "GET /noindex/css/fonts/Light/OpenSans-Light.woff HTTP/1.1" 

原文地址:https://blog.51cto.com/14557905/2481920

时间: 2024-08-02 18:26:33

squid缓存服务器——传统模式的相关文章

【实战】Squid 缓存服务器 之 传统代理 + 透明代理

目录: 1· Squid代理的概述原理2· 代理的基本类型3· Squid 服务脚本4· 构建代理服务器(传统代理.透明代理)5· 总结 Squid代理的概述原理 1)代理的工作机制 1.什么是 Squid ? Squid是一个高性能的代理缓存服务器,Squid支持FTP.gopher.HTTPS和HTTP协议.和一般的代理缓存软件不同,Squid用一个单独的.非模块化的.I/O驱动的进程来处理所有的客户端请求. 2·缓存的工作原理 squid 是工作在应用层的代理服务软件,squid 主要提供

Squid缓存服务器原理与实战演练

Squid服务基础讲解代理缓存机制:代理的基本类型:1. 传统代理:需要在客户端软件手动设置指定代理服务器 2. 透明代理:无需用户手动指定,通过路由.防火墙策略将访问重定向Squid 反向代理:为网站服务下面进行实战演练! 实验环境:代理服务器squid 192.168.80.181HTTP服务器192.168.80.182Win7客户端 192.168.80.9代理服务器端配置如下[[email protected] squid-3.5.27]# tar xf squid-3.5.27.ta

Squid 缓存服务器的缓存代理,及配置 Squid 的ACL访问控制策略

Squid缓存服务器 Squid 是 Linux 系统中最常见的一块开源代理服务软件(官方网站为 http://www.squid-cache.org ),可以很好地实现HTTP.FTP.DNS.查询,以及SSL等应用的缓存代理,功能十分强大. 缓存代理概述 作为应用层的代理服务软件,Squid 主要提供缓存加速和应用层过滤控制的功能. 代理的工作机制 当客户机通过代理来请求 Web 页面时,指定的代理服务器辉县检查自己的缓存,如果缓存中已经有客户机需要访问的页面,则直接将缓存中的页面内容反馈给

squid缓存服务器

squid缓存服务器 缓存概念 作为应用层的代理服务软件,squid主要提供缓存加速和应用层过滤控制功能 代理服务器 客户端向网站发送请求数据 (为了能承受更多的并发连接客户端访问先请求代理服务器听过代理服务器提供出的数据给客户端,如果代理服务器上没有客户端的需求则代理服务器江湖发送请求给web服务器请求数据然后缓存到自己的缓存里面) 代理服务器分为以下几种 传统代理(客户端发送请求数据,访问的是代理服务器有代理服务器提供数据) 透明代理(代理服务器作为客户端的网关,在客户机访问web服务器时,

squid缓存服务器————反向代理

squid缓存服务器----反向代理如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用1.首先给网页做区分 [[email protected] httpd]# cd /var/www/html/ [[email protected] html]# ls [[email protected] html]# vim index.htm

squid缓存服务器 ACL访问控制 传统代理 透明代理 squid日志分析 反向代理

缓存代理概述 Squid提供了强大的代理控制机制,通过合理的设置ACL,并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等条件进行过滤.作为应用层的代理服务器软件,Sqiod主要提供了缓存加速和引用层过滤控制能力 代理的工作机制 当客户机通过代理来请求 Web 页面时,指定的代理服务器,会先检查自己的缓存如果缓存中已经有客户机需要访问的页面,则直接将缓存中的页面内容反馈给客户机:如果缓存中没有客户机需要访问的页面,则用代理服务器向Internet 发送访问请求. 由于客户机的W

CentOS7上实现Squid缓存服务器的两种模式

一.缓存代理概述Squid服务作为应用层的代理服务软件,Squid主要提供缓存加速和应用层过滤控制的功能. 二.代理的基本类型根据实现的方式不同,代理服务可以分为传统代理和同名代理两种行间的代理服务 1.传统代理:也就是普通的代理服务,首先必须在客户机的浏览器.下载软件等程序中手动设置代理服务器的地址和端口,然后才能使用代理服务来访问网络.对于网页浏览器,访问网站时的域名解析请求也会发送给指定的代理服务器.2.透明代理:提供与传统代理相同的功能和服务,其区别在于客户机不需要指定代理服务器的地址和

Linux squid 缓存服务器

一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快.Squid 可以代理HTTP.FTP.GOPH

Squid 缓存的相关操作及使用说明

一.查看squid命中情况 除了之前在squid的access.log中查看squid缓存命中的方法之外,还可以通过以下方法进行查看: 这里对图片服务器的httpd配置文件添加一些新的配置如下: ExpiresActive on ExpiresDefault "access plus 12 month" ExpiresByType text/html "access plus 12 months" ExpiresByType text/css "acces