服务器版本:centos6.5 squid版本:3.1
Squid介绍
Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,过滤掉不想要的东西。
工作流程:客户端向代理服务器发送请求——>代理服务器检查自己的数据缓存——>找到用户想要的数据,立马将数据返回给客户端;未找到用户想要的数据,会向服务端发送数据请求,将取得的数据返回给客户端,并保留一份数据到自己的缓存中。
功能
缓存:加快访问速度
白名单:访问控制
代理方式
普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;
透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;
反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
安装
yum install -y squid
chkconfig squid on #配置开机自启
squid 服务配置
#编辑 /etc/squid/squid.conf
visible_hostname 172.31.10.95 #服务器名,提供对外访问
cache_dir ufs /var/spool/squid 100 16 256 #将注释清掉,配置缓存目录
cache_mem 128 MB #配置内存大小
#添加访问控制,需配置在 http_access deny all 之前
acl localnet src 172.31.0.0/16 #配置内网段允许访问
acl http proto HTTP #配置使用协议
acl good_domain dstdomain www.qq.com www.baidu.com #配置白名单域名
http_access allow good_domain #允许白名单通过访问
http_access deny !good_domain #拒绝不在白名单内域名的访问
acl 控制参考:http://www.squid-cache.org/Doc/config/acl/
配置完通过 squid -k check 命令检测配置,然后重启服务 service squid restart
本地访问检测配置是否生效,检查命令:curl -xproxy_server_address:port www.qq.com -I
正向代理配置:在电脑上 internet选项,链接,局域网设置,进去配置代理ip。
反向代理配置:
修改http_port 3128 为 http_port 80 accel vhost vport
添加
cache_peer 172.31.13.202 parent 80 0 no-query originserver round-robin name=webServer1 #172.31.13.202 为目标服务器地址
cache_peer_domain webServer1 confluence.xxxxx.net #confluence.xxxxx.net 为后端的服务器
配置多个squid服务器时:
#cache_peer squid1 sibling 80 3130
#cache_peer squid2 sibling 80 3130
配置详解,参考如下:
反向代理测试:
nginx里添加访问控制
本机访问:
通过代理服务器访问:
以上是squid的正向和反向代理配置。
参考链接:https://www.cnblogs.com/mchina/p/centos-squid-proxy-server.html