一、什么是squid
- Squid(Squid cache,简称Squid)是Linux系统中最常用的一款开源代理服务软件
- 可以很好地实现HTTP和FTP,以及DNS查询、SSL等应用的缓存代理,功能十分强大
- squid的官方网站为http://www.squid-cache.org
二、缓存代理概述
1、 Web代理的工作机制,缓存网页对象,减少重复请求
- Squid是一个缓存Internet数据的一个软件,它接收用户的下载申请, 并自动处理所下载的数据。
- 也就是说,当一个用户想要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份
- 当别的用户申请同样的页面时,Squid把保存的备份立即0传给用户,减少了向Internet提交重复的Web请求的过程,提高了用户下载网页的速度,隐藏了客户机的真实IP
如图:
2、代理的基本类型
- 传统代理:适用于Internet,需明确指定服务端
- 透明代理: 客户机不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理
3、使用代理的好处
- 提高Web访问速度
- 隐藏客户机的真实IP地址
三、squid传统代理搭建
环境介绍
squid服务器:192.168.100.10/24
web服务器:192.168.100.20/24
客户机:192.168.100.30/24
实验目的
- 通过客户机访问web页面,不做代理时,web服务器的访问日志显示的是客户机IP,
- 当做了传统代理后,web服务器的访问日志显示的是squid服务器IP。
squid服务器配置
- 安装编译工具,解压squid软件包到opt
yum install gcc gcc-c++ -y
tar zxvf squid-3.5.27.tar -C /opt
- 进入解压目录执行configure
./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
- 编译并安装
make && make install
- 创建软连接,创建squid用户,更改squid属组
ln -s /usr/local/squid/sbin/* /usr/local/sbin
useradd -M -s /sbin/nologin squid
chown -R squid:squid /usr/local/squid/var/
- 修改squid配置文件,
vi /etc/squid.conf
###在第56行添加参数
56 #http_access deny all
57 http_access allow all
58 http_port 3128 ###在下面新增
59 visible_hostname 192.168.100.10
60 cache_mem 64 MB
61 cache_swap_low 80
62 cache_swap_high 97
63 cache_dir ufs /usr/local/squid/var/cache/squid 512 16 256
64 cache_effective_user squid ##缓存用户squid
65 cache_effective_group squid ##缓存组squid
- 检查squid相关配置,并初始化
squid -k parse ##检查配置文件
squid –k rec ##重新加载配置文件
squid -zX ##初始化缓存目录
- 编写squid服务脚本,直接放到service中管理
vi /etc/init.d/squid
#!/bin/bash
#chkconfig: 35 90 25
#config: /etc/squid.conf
#pidfile: /usr/local/squid/var/run/squid.pid
#Description: Squid - Internet Object Cache
PID