Squid代理服务器应用(传统代理&透明代理)
前言
squid是一种用来缓存Internet数据的软件。接受来自客户机需要下载的目标的请求并适当的处理这些请求。也就是说,如果一个客户端想要打开默认网站,它请求squid为它取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后,squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,squid可以简单的从磁盘中读到它,那样数据会立即传输到客户机上。
一:squid概述
Squid(Squid cache,简称Squid)是Linux系统中最常用的一款开源代理服务软件,可以很好地实现HTTP和FTP,以及DNS查询、SSL等应用的缓存代理,功能十分强大,本篇博客详细介绍了传统代理、透明代理,squid日志分析的配置。squid的官方网站为http://www.squid-cache.org
1.1:squid代理的作用
- 通过缓存方式为用户提供Web加速访问
- 对用户的Web访问请求进行过滤控制
1.2:缓存代理概述
1.21:Web代理的工作机制
- 缓存网页对象,减少重复请求
1.3:代理的基本类型
传统代理:适用于lnternet,需要明确指定服务器
透明代理:客户机不需要指定代理服务的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理
- 使用代理的好处
提高Web访问速度
隐藏客户机的真实IP地址
二:案例一:传统代理
- 环境
名称 角色 地址
centos-7 squit 20.0.0.45
centos-7 web 20.0.0.46
centos-7 客户机 20.0.0.120
2.1:安装squid服务
#解压到opt目录
tar zxvf squid-3.4.6.tar.gz -C /opt
#安装编译工具
yum -y install gcc gcc-c++
#configure配置
cd /opt/squid-3.4.6
./configure \
--prefix=/usr/local/squid \ #指定安装路径
--sysconfdir=/etc \ #指定配置文件的路径
--enable-arp-acl \ #启动acl访问控制列表的功能
--enable-linux-netfilter \ #支持内核过滤
--enable-linux-tproxy \ #开启透明模式
--enable-async-io=100 \ #吞吐量
--enable-err-language="Simplify_Chinese" \ #报错信息指定为中文格式
--enable-underscore \ #在url中支持下画线
--enable-poll \ #类模块
--enable-gnuregex #支持正则表达式
#编译及安装
make && make install
#路径优化,便于系统管理
[root@squid squid-3.4.6]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/
#创建squid程序性用户
[root@squid squid-3.4.6]# useradd -M -s /sbin/nologin squid
#赋予目录权限
[root@squid squid-3.4.6]# chown -R squid.squid /usr/local/squid/var/
2.2:修改主配置文件
[root@squid squid-3.4.6]# vim /etc/squid.conf //编辑配置文件
//56行
http_access allow all //开启允许所有访问
#http_access deny all //注释拒绝访问
http_port 3128
//下面添加
cache_effective_user squid //缓存相对的用户
cache_effective_group squid //缓存相对的组
#验证语法配置文件语法
[root@squid squid-3.4.6]# squid -k parse
#初始化缓存目录
[root@squid squid-3.4.6]# squid -z
#启动squid服务
[root@squid squid-3.4.6]# squid
#查看端口
[root@squid squid-3.4.6]# netstat -natp | grep 3128
tcp6 0 0 :::3128 :::* LISTEN :