设为首页 收藏本站
查看: 1178|回复: 0

[经验分享] Squid缓存服务器方案

[复制链接]

尚未签到

发表于 2015-9-3 08:40:38 | 显示全部楼层 |阅读模式
  1. 缓存服务器方案的提出主要是能满足节省企业出口线路带宽,给用户带来更高速的web页面访问速度。
2. 根据我们内网的结构需求制定适合我们企业网内合适的用户方案。
3. 根据目前网络的结构背景,结构如下:
   
4. Squid 版本2.6与2.5存在不少区别,所以二者在配置上有所差异,尤其在透明代理上的配置上。关于两个软件的下载和安装方法,网上已经有许多文章了,请根据自己的发行版本搜索查看,本文主要写如何配置以实现透明代理+缓存。
5.  
配置iptables,实现NAT,关于iptables作为防火墙使用的安全配置,不是本文的重点。
#首先加载模块
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe -ip_conntrack
modprobe -ip_conntrack_ftp
modprobe -ip_conntrack_irc
#清空旧有配置
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat
#设置默认策略
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCETP
echo "1" > /proc/sys/net/ipv4/ip_forward #启用iptbles的数据转发功能,重点步骤一!!
echo "1" > /proc/sys/net/ipv4/tcp_syncookies #安全措施,防syn攻击
  
6. iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp --dport 80 -j DNAT –to代理服务器IP:3128 #端口重定向,实现透明代理的重点步骤一,有了这一步,客户端就不必设置代理了,服务器根据用户请求目标端口为80,则自动重定向到3128,交由squid处理,由此实现了http代理;同理,根据Squid的协议支持情况,也可设置ftp代理等。
  7. iptables -t nat -A POSTROUTING -s 0.0.0.0/24 –d 代理服务器IP -j MASQUERADE #实现SNAT,即源地址转换(也称为IP隐藏)执行了这句以后,内网用户无需设置代理,不过此时Squid还没有起作用。
  8. 配置Squid.conf
一些基本的配置这里就不再赘述了,几个关键点讲下。
http_port 3128 transparent #配置Squid的监听端口,默认为3128,
#参数transparent是squid 2.6版本与先前旧版本一个比较重要的区别,是实现透明代理的重点步骤二,没有该参数则无法实现透明代理,将出现以下错误
9.   
10.
cache_dir ufs /var/spool/squid 100 16 256 #设置缓存大小,一级目录、二级目录数量
cache_swap_low 90
cache_swap_high 95
access_log /var/log/squid/access.log #记录访问日志
cache_log /var/log/squid/cache.log #记录缓存日志
cache_store_log /var/log/squid/store.log
client_netmask 255.255.255.255
  cache_mgr xin.xunzhao@gmail.com #设置管理员邮箱
cache_effective_user proxy #设置squid以proxy用户身份运行,这点涉及系统安全,具体参见“chroot技术或jail监禁、jail监牢 ”
cache_effective_group proxy #功能同上
visible_hostname squid_ubuntuXZ #设置主机名
coredump_dir /var/spool/squid
  acl badurl1 dstdomain -i .qq.com
acl badclient src 192.168.33.20
acl our_networks src 192.168.33.0/24 #定义内网ip范围
  http_access deny badclient #拒绝某些用户上网
http_access deny badurl1 #禁止用户访问某些网站
http_access allow our_networks #允许内网用户使用
http_access deny all #拒绝所有未定义动作
  (四)其他功能扩展配置
  iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.51.55:80 #端口重定向
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.51.55:3389 #端口重定向
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 53 -j DNAT --to-destination 202.101.107.85:53 #端口重定向,本句起到智能DNS的作用
iptables -t filter -A INPUT -i eth1 -p icmp -j DROP #禁用icmp
iptables -t filter -A FORWARD -i eth0 -d 192.168.33.20/31 -j DROP #禁止IP为192.168.33.20的客户端上网
iptables -t filter -A FORWARD -d 58.60.9.246 -j DROP #禁止所有用户访问某IP
注意:iptables的配置会在每次系统重启后被还原,因此需要设定自动导入配置文件,在/etc/rc.local中添加相应命令即可,用户可以先用iptables-save导出当前配置,然后用文本编辑器配置好后,再用iptables-restore导入配置即可,如我设定的开机自动导入配置文件为iptables-restore < /var/lib/iptables/saved.cfg 。
  当然,iptables 和Squid的功能还不只以上所述,关于其他方面的配置,还请关注网上的相关文章,我也将陆续整理一些自己使用中的经验笔记与大家分享,也欢迎大家批评指教,指出我文章中的缺点与不足,呵呵。
http_port 3128 transparent #红色部分是支持透明代理,这是squid新版本的改进。
  具体实施步骤:
1. 测试web访问外网网站等,迅雷,BT, 电驴,超级旋风,下载都没有问题,web端口以目的端口80的走缓存服务器,其实等相关程序还是走三线。
2. 网络环境搭建,squid缓存服务器接入2812F旁的华为5000系列交换机上,第10口,用超6类直通线相连。
3. 各设备的具体配置如下
4. 10.0.1.1 服务器的配置 iptables -t nat -A PREROUTING -s 10.1.0.0/24 -p tcp --dport 80 -j DNAT –to 10.0.1.15:3128 #端口重定向,实现透明代理的重点步骤一,有了这一步,客户端就不必设置代理了,服务器根据用户请求目标端口为80,则自动重定向到3128,交由squid处理,由此实现了http代理;同理,根据Squid的协议支持情况,也可设置ftp代理等。
iptables -t nat -A POSTROUTING -s 10.1.0.0/24 –d 10.0.1.15 -j MASQUERADE 这一条加上主要是对squid服务器的访问做地址转换,如果不加入这一条路由不通,所以就无法直接把数据包路由到代理服务器上。
缓存服务器的配置:首先要保证缓存服务器能够正常上网,ip地址配置为10.0.1.15
网关配置为10.0.1.1 能够保证缓存服务器访问外网能正常通过3线出去访问。Squid.conf的具体配置,我在上面已经写的很清楚了,仔细看看就知道怎么配置了。
5. 单点故障解决方法,在31上面远程侦听缓存服务器的3128端口,如果缓存服务上的3128端口DOWN掉,远程执行删除10.0.1.1服务器上面的iptables -t nat –D PREROUTING -s 10.1.0.0/24 -p tcp --dport 80 -j DNAT –to 10.0.1.15:3128
iptables -t nat –D POSTROUTING -s 10.1.0.0/24 –d 10.0.1.15 -j MASQUERADE
       上面两条语句删除就可以了,然后所有的数据还是走三线,不会走缓存服务器了。
6. 静态/动态的缓存功能,缓存服务器一般只能缓存静态页面,而动态的页面是缓存不了的,动态的页面一般都是.asp开始的,目前我们主要是针对大型网站能够缓存到2及页面就能够满足我们的需求了,比如新浪,搜狐,中关村在线等。
7. 流量的节省和给用户带来的速度是否能满足我们的需求,要权衡方案给企业带来的性价比。
8. # cache_vary on
9. 难道我的配置文件是off不成?赶紧检查,发现还真是off,sign,原来就是这个问题折磨我,改成on,将Apache的Deflate配置启用,再观察内存对象,发现静态网页真的被缓存了!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-108889-1-1.html 上篇帖子: 【转合辑】squid的安装配置 下篇帖子: 【转】squid的安装配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表