MySQL数据库——Squid缓存代理
前言
一、Squid代理服务器
- Squid主要提供缓存加速、应用层过滤控制的功能。
1. 代理的工作机制
- 代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。
- 将获得的网页数据(静态 Web 元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应。
2. 代理的类型
-
传统代理:适用于Internet,需在客户机指定代理服务器的地址和端口。
-
透明代理:客户机不需指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理。
-
反向代理:如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存(静态)在本地,供下一个请求者使用。
3. 使用代理的好处
- 提高Web访问速度
- 隐藏客户机的真实IP地址
二、Squid服务编译
1. Web代理的工作机制
- 缓存网页对象,减少重复请求
Squid是一个缓存Internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户想要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,减少了向Internet提交重复的Web请求的过程,提高了用户下载网页的速度,隐藏了客户机的真实IP
2. squid代理安装
①编译安装Squid
(1)安装依赖环境
yum -y install gcc gcc-c++ make
(2)上传软件包squid-3.5.27.tar到/opt目录下
cd /opt
tar xvf squid-3.5.27.tar.gz
cd /
./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
####上述脚本解释###
./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正则表达式
②创建链接文件,优化路径
ln -s /usr/local/squid/sbin/* /usr/local/sbin
③创建程序用户、组
useradd -M -s /sbin/nologin squid
④改变目录属主
chown -R squid:squid
⑤修改Squid的配置文件
#放在http_access deny all 之前,允许任意客户机使用代理服务,控制规则自上而下匹配
vim /etc/squid.conf
......
-----56行--插入------
http_access allow all
#放在http_access deny all 之前,允许任意客户机使用代理服务,控制规则自上而下匹配
http_access deny all
http_port 3128
#用来指定代理服务监听的地址和端口(默认的端口号为3128)
-----61行--插入------
cache_effective_user squid
#添加,指定程序用户,用来设置初始化、运行时缓存的账号,否则启动不成功
cache_effective_group squid
#添加,指定账号基本组
coredump_dir /usr/local/squid/var/cache/squid
#指定缓存文件目录
###上述脚本解释
##配置硬盘缓存,打开#.缓存目录512M,其中一级目录16个,二级256个
cache_effective_user squid
cache_effective_group squid
⑥检查配置文件&&重新加载配置文件&&初始化缓存目录&&启动squid服务
squid -k parse ##检查配置文件
squid -k rec ##重新加载配置文件
squid -zX ##初始化缓存目录
squid ##启动squid服务
⑦确认squid服务
netstat -anpt |grep squid ##确认squid服务处于正常监听状态
【squid服务脚本】
[root@localhost ~]# vi /etc/init.