傅令江的光影色彩世界
留住记忆的点滴
  • 首页
  • 文学
    • 诗词鉴赏
    • 美文共读
    • 原创
  • 编程
    • php
    • asp
    • .net
    • VB
    • C/C++
    • 易语言
    • js
    • 其他
    • 逆向
  • 运维
    • windows
    • linux
  • 光影色彩
    • 电影
    • 音乐
  • 科技
    • 互联网
    • 手机
  • 生活
    • 情感
  • 微语
10月232014

巧用squid结合rewrite轻松分流

作者:令狐江   发布:2014-10-23 13:51   分类:linux   阅读:3777次   评论:0条  

目前遇到的一个网站改造项目,由于历史原因,全站的图片都在放在几个目录下存放,每个目录图片文件数量能达到数十万。
网站流量增加后,明显IO上造成了巨大瓶颈,唯一的办法就是将图片移走,换一个专用的图片域名,然后把图片按Hash值分目录存放,控制每个目录的图片数量在一个合理范围。
不过,这样改造的工程量浩大。
且不说要更改上传图片的程序,图片更换目录后,所有的图片链接地址变化了,意味着有大量的前端页面图片会出错。
这样的改造工期过长,涉及到的开发量过大。
好,现在squid就派上用上了。
目标其实很简单:squid的cache目录管理是hash目录存储的,只要想一个办法把现在的图片文件嫁接到squid的cache里就搞定了。
第一步:建立一个图片专用虚拟主机,映射网站的图片目录。

这台机器的IP假设为 133.33.33.31

比如网站的域名是 www.dayuer.com,用同样的目录新建一个 image.dayuer.com;
注意,在dns里不要把image.dayuer.com指到这台主机,这个主机仅仅是squid访问的而已。

这样,访问 等同于 image.dayuer.com/images/xxx.jpg

第二步:在另外一台服务器装squid,配置成透明反向代理
这台机器的IP假设为 122.22.22.221
具体的步骤google多的是。

这台squid是用来代理image.dayuer.com的;
squid的hosts里解析 image.dayuer.com
在dayuer.com的dns服务器里设子域名 image.dayuer.com = 122.22.22.221
如果配置成功,现在访问 image.dayuer.com/images/xxx.jpg就能看到图片了

第三步:前面的工作做好以后,就要把对www.dayuer.com的图片访问转移到image.dayuer.com的访问
OK,现在是关键:
www.dayuer.com的主机配置文件里,增加一个rewrite规则:

Redirect /images http://image.dayuer.com/images

这样,访问的时候,apache会发出一个302转向,去请求 image.dayuer.com/images/xxx.jpg,这个过程在浏览器里看不出来,用户完全不会有感觉。
好了,到现在为止,图片目录就被顺利的嫁接到squid的cache里了。
看起来好像没什么变化

分析一下访问一个图片的请求情况:
访问
请求到达apache后,根据rewrite规则,会被转到

这时,请求到达squid了,squid检查cache,发现没有缓存,那么去请求原始文件
squid根据hosts的设置,知道image.dayuer.com的真实ip是133.33.33.31,然后把请求发过去
这时,image的虚拟主机接受到请求,返回图片给squid,squid再把图片返回给浏览器
然后浏览器里就出现图片了。

说到这,估计有人不明白,干嘛这么绕一圈,累死人了。
的确是绕了一圈,不过这么一来,原来的程序不用修改了,页面也不用改了,文件目录也不用挪走了,以前的一切该怎样还怎样。
但是,用户访问image的流量,确确实实被转移到了squid,不会再读取本地的图片目录,IO瓶颈没了。
大量的文件按Hash目录结构存放到了squid的cache目录里
一个快被流量压垮的网站,就这么分解了流量,重新又活了,这一切,一句代码都没有改过。




本文固定链接: https://www.fulingjiang.cn/linux/73.html

blogger
该日志由 令狐江 于2014-10-23 13:51 Thursday发表在 linux 分类下。
版权所有:《傅令江的光影色彩世界》 → 《巧用squid结合rewrite轻松分流》;
除特别标注,本博客所有文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:
上一篇::mod_rewrite中的REQUEST_URI
下一篇:CentOS配置mencoder和ffmpeg flv视频转码

热门文章

  • 兄弟二周年祭

相关文章

  • 增加/删除 SWAP分区空间的方法
  • RKHunter:一款Unix平台上的Rootkit检测器
  • nginx 反向代理设置缓存配置
  • 如何关闭nginx,apache的默认访问日志wdlinux的关闭办法
  • crontab centos下crond执行shell不完整
取消回复

发表评论

亲,头像对么?

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


  • 日历

  • 存档

    • 2024年10月(1)
    • 2023年2月(1)
    • 2022年11月(1)
    • 2022年10月(10)
    • 2022年9月(13)
    • 2022年8月(2)
    • 2022年7月(14)
    • 2022年6月(2)
    • 2022年5月(8)
    • 2022年4月(7)
    • 2022年3月(13)
    • 2022年2月(2)
    • 2022年1月(9)
    • 2021年12月(2)
    • 2021年11月(4)
    • 2021年10月(2)
    • 2021年9月(6)
    • 2021年7月(4)
    • 2021年6月(3)
    • 2021年5月(3)
    • 2021年4月(11)
    • 2021年3月(13)
    • 2021年2月(2)
    • 2021年1月(1)
    • 2020年12月(1)
    • 2020年4月(5)
    • 2019年9月(1)
    • 2019年8月(1)
    • 2019年5月(3)
    • 2018年3月(1)
    • 2017年10月(1)
    • 2016年7月(1)
    • 2016年4月(1)
    • 2015年12月(1)
    • 2015年11月(3)
    • 2015年9月(1)
    • 2015年8月(10)
    • 2015年7月(1)
    • 2015年6月(1)
    • 2015年4月(1)
    • 2015年3月(3)
    • 2015年2月(8)
    • 2015年1月(4)
    • 2014年12月(1)
    • 2014年11月(27)
    • 2014年10月(13)
    • 2014年9月(14)
    • 2014年8月(26)
    • 2014年7月(21)
  • 最新评论

    • 令狐江:
      喜欢这首歌是因为可以引起共鸣!
  • 链接

    • 演讲稿网
    • Recollect
    • 演讲稿
    • 祁阳人生活网
    • 我爱演讲稿网
  • 搜索

  • 标签

      函数 自定义方法 SEO 分页 分页函数 分页方法 nginx重新的一些规则
  • 分类

    • 文学(0)
    • 编程(0)
    • 运维(0)
    • 光影色彩(0)
    • 科技(0)
    • 生活(0)
    • 诗词鉴赏(3)
    • 美文共读(1)
    • 原创(10)
    • php(111)
    • asp(1)
    • .net(0)
    • VB(0)
    • C/C++(0)
    • 易语言(0)
    • js(8)
    • 其他(9)
    • 逆向(2)
    • windows(11)
    • linux(121)
    • 电影(0)
    • 音乐(1)
    • 互联网(4)
    • 手机(0)
    • 情感(2)
  • 最新文章热门文章随机文章

    • 兄弟二周年祭
    • openai给的ionCube 解密代码,应该是老版本可以这样
    • WordPress – 5秒盾防CC(PHP通用代码)
    • 我高中最好的朋友今天猝死了-伤心得不行
    • Linux系统中 systemd-journaldCPU占用异常的解决方法
    • SVN Skipped 'xxx' -- Node remains in conflict 错误的解决办法
    • 解决Linux读写nfs共享盘速度慢的问题
    • php 获取302跳转后的地址
    • 让vsftp显示隐藏文件的办法,比如显示 .htaccess
    • 添加自签名https证书到centos系统信任的问题
    • php的一个验证码程序
    • smarty、smarty格式化、smarty整数、smarty float、smarty各种转换方式、smarty日期转换等等
    • smarty 条件选择 if else elseif
    • RKHunter:一款Unix平台上的Rootkit检测器
    • ColorPicker颜色选择器,图片演示
Copyright © 2001-2025 傅令江的光影色彩世界. Powered by www.fulingjiang.cn ICP备案:京ICP备14015190号-5