Squid代理服务器(缓存代理)介绍及相关配置
2010-11-07 14:22
645 查看
一、代理服务器的作用
1.通过缓存的方式为用户提供Web访问加速 2.对用户的Web访问进行过滤控制 |
二、代理服务器分类
1.普通代理服务 即标准的、传统的代理服务 需要客户机在浏览器中指定代理服务器的地址、端口 2.透明代理服务 适用于企业的网关主机(共享接入Internet)中 客户机不需要指定代理服务器地址、端口等信息 需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理 3.反向代理服务 为Internet用户访问企业Web站点提供缓存加速 |
三、squid 基本配置
1.所需软件包软件包名:squid-2.6.STABLE6(版本可能不一样) 服务名:squid 主程序:/usr/sbin/squid 配置目录:/etc/squid/ 主配置文件:/etc/squid/squid.conf 默认监听端口:TCP 3128 默认访问日志文件:/var/log/squid/access.log |
# yum install squid |
常用配置项
http_port 3128 //默认监听端口 cache_mem 64 MB //缓存所占的内存空间大小,建议为物理内存的1/4—1/3 maximum_object_size 4096 KB //最大缓存对象大小 reply_body_max_size 10240000 allow all //限定最大请求的文件大小 单位是字节 allow al表示允许所有人的请求 access_log /var/log/squid/access.log squid //访问日志 visible_hostname proxy.test.com //反向解析自己的ip地址 以获得主机名 cache_dir ufs /var/spool/squid 100 16 256 //定义缓存目录 数据存储格式 缓存到的目录 为缓存目录分配的磁盘空间(MB) 缓存空间的一级子目录个数 二级子目录个数 |
按照上面的常用配置项修改主配置文件
测试语法
# squid –k parse |
# squid –z |
# service squid start |
服务器的地址(192.168.1.1)、端口(3128)
验证代理服务器功能
在客户机的浏览器上访问某个站点(外网测试机ip 218.29.30.29
),网页访问成功后,检查代理服务器的日志文件,应发现客户机的HTTP访问记录
[b][root@localhost ~]# tail -1 /var/log/squid/access.log 1244386040.208 62 192.168.1.100 TCP_MISS/200 2828 GET http://218.29.30.29/icons/apache_pb2.gif - DIRECT/218.29.30.29 image/gif |
[b][root@gw1 ~]# tail -1 /var/log/httpd/access_log[b]218.29.30.31 - - [16/May/2009:12:39:39 +0800] "GET /icons/apache_pb2.gif HTTP/1.0" 200 2414 "http://218.29.30.29" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 1.0.3705; aff-kingsoft-ciba)"[/b] |
4.配置透明代理
实现透明代理的基本条件
前提:(1)客户机的Web访问数据要能经过防火墙 (2)代理服务构建在网关(防火墙)主机中 配置要求:(1)代理服务程序能够支持透明代理 (2)设置防火墙规则,将客户机的Web访问数据自动重定向给代理服务程序处理 |
(1)修改squid.conf配置文件,并重新加载该配置
# vim /etc/squid/squid.conf http_port 192.168.10.1:8080 transparent # service squid reload |
# iptables -t nat -I PREROUTING -i eth1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 8080 |
不需要在浏览器中指定代理服务器的地址、端口
(4)验证透明代理的实施效果
5.配置反向代理
(1)拓扑图:
(2)基本实现步骤
修改squid.conf文件,并重新加载该配置
语法:cache_peer Web服务器地址 服务器类型 http端口 icp端口 [可选项]
[b]http_port 218.29.30.31:80 vhost cache_peer 192.168.10.7 parent 80 0 originserver weight=5 max-conn=30 cache_peer 192.168.10.8 parent 80 0 originserver weight=5 max-conn=30 cache_peer 192.168.10.9 parent 80 0 originserver weight=5 max-conn=30 cache_peer 192.168.10.6 parent 80 0 originserver weight=1 max-conn=8 |
在上游Web服务器(192.168.10.6~192.168.10.9)中开启httpd服务
在Internet中的客户机(218.29.30.29)中访问反向代理服务器主机(http://218.29.30.31),应能够看到实际由上游Web服务器提供的网页内容
查看反向代理服务器的访问日志信息
[b][root@localhost ~]# tail -1 /var/log/squid/access.log 1231256531.038 35 218.29.30.29 TCP_MISS/200 2869 GET http://218.29.30.31/index.php? - FIRST_UP_PARENT/192.168.10.6 image/gif |
6. ACL访问控制
(1)ACL(Access Control List,访问控制列表)
可以从客户机的IP地址、请求访问的URL/域名/文件类型、访问时间、并发请求数等各方面进行控制
(2)应用访问控制的方式
定义acl列表
acl 列表名称 列表类型 列表内容 …
常用的acl列表类型
src dst port srcdomain dstdomain time maxconn url_regex urlpath_regex |
acl LAN1 src 192.168.10.0/24 acl PC1 src 192.168.10.12/32 acl Blk_Domain dstdomain .qq.com acl Work_Hours time MTWHF 08:30-17:30 acl Max20_Conn maxconn 20 acl Blk_URL url_regex -i ^rtsp:// ^mms:// acl Blk_Words urlpath_regex -i sex adult acl RealFile urlpath_regex -i \.rmvb$ \.rm$ |
http_access allow或deny 列表名……
根据已经定义的部分ACL列表进行访问控制
http_access deny LAN1 Blk_URL http_access deny LAN1 Blk_Words http_access deny PC1 RealFile http_access deny PC1 Max20_Conn http_access allow LAN1 Work_Hours |
(1)没有设置任何规则时,将拒绝所有客户端的访问请求
(2)有规则但找不到相匹配的项时,将采用与最后一条规则相反的权限,即如果最后一条规则是allow,那么就拒绝客户端的请求,否则允许该请求
本文出自 “别样的天空” 博客,请务必保留此出处http://shyzzu.blog.51cto.com/1846675/416827
相关文章推荐
- Squid configuration for rsync proxy --- rsync 代理设置及squid代理服务器相关配置
- linux的Nginx防盗链、Nginx访问控制、Nginx解析php相关配置、Nginx代理介绍
- 深入类加载器-类加载器作用,类缓存、类加载器的层次结构、ClassLoader类介绍、代理模式之双亲委派机制
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- nginx代理 .静态文件不记录日志和配置缓存
- 浏览器缓存相关的Http头介绍:Expires,Cache-Control,Last-Modified,ETag
- Nginx+PHP配置相关进程的简要介绍
- squid代理服务器详细配置及介绍
- Rabbitmq 相关介绍之单机配置
- 关于“缓存着色(cache coloring, page coloring)”技术的相关资料介绍
- 网卡配置和DNS配置,手动挂在nas存储的共享目录,网络相关其它操作命令,修改防火墙中的端口配置,resolv.conf配置详细介绍和网卡信息配置详细介绍
- Rabbitmq 相关介绍之单机镜像模式集群配置
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- /etc/sysconfig/selinux 配置文件————相关介绍
- Rabbitmq 相关介绍之双机镜像模式集群配置
- nginx 代理缓存配置
- 【MongoDB】3.0 配置文件相关介绍
- session有效期配置 相关介绍(上)
- struts2的常量配置以及常用常量的相关介绍
- Window环境下配置Redis服务的方法及查看缓存数据的工具介绍