分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]
点击在新窗口中浏览此图片  Squid是一个缓存Internet数据的高性能代理服务器软件。当一个用户想要访问一个网页或下载一个文件时,会首先向Squid发出访问请求,由Squid代替其进行网页或文件下载,Squid在把该网页或文件传给用户的同时会在本机保留一个缓存备份。当别的用户访问同样的网页时,Squid会把保存的网页备份立即传给用户,使用户觉得速度相当快,同时也降低了后端数据来源Web服务器的压力。Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS协议,暂不能代理POP3、NNTP等协议。Squid可以工作在很多操作系统中,如AIX、Digital、Unix、FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris、OS/2等。

  目前Squid已经在新浪、搜狐、网易、腾讯等各大门户网站广泛使用,成为必不可少的服务器软件之一。

  《Squid中文权威手册》由Squid创始人 Duane Wessels 所著的英文版《Squid: The Definitive Guide》翻译而来,其译者曾在新浪、网易工作过。

  在线版:http://blog.zyan.cc/book/squid/ (便于阅读与查询)

  PDF版:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=1998985 (排版规范,可下载后打印出来看)
Tags: , ,
  我博客上的图片原来都存放在www.zyan.cc服务器上,由于该服务器不稳定,于是我将所有图片切换到了blog.zyan.cc服务器上,同时在MySQL数据库中,将字符串www.zyan.cc批量替换为blog.zyan.cc。为了方便以后使用,我将这条“将字符串aaa批量替换为bbb”的SQL语句记录在此:
引用
UPDATE 表名 SET 字段名 = REPLACE (字段名, 'aaa', 'bbb');
Tags:
  为了使多台服务器的安装配置方式统一,我写了一篇图文并茂的《针对服务器运行环境安装CentOS 4.X Linux》演示文档。

  在线版(FLASH):http://blog.zyan.cc/book/centos/

  下载版(PPS幻灯片,需安装 PowerPoint):http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=1976356

  

  什么是CentOS?

  2003年9月,红帽公司 (RedHat) 宣布不再推出个人使用的发行套件而专心发展收费的商业版本(RedHat Enterprise Linux)。CentOS是基于RedHat Enterprise Linux源代码重新编译,去除RedHat商标的产物,各种操作、使用和RedHat没有区别。CentOS完全免费,修正了RedHat的很多BUG,但CentOS不向用户提供技术支持,也不负任何商业责任。

  附1:CentOS 4.5 国内下载地址(ISO镜像)
  CD1下载:http://mirror.be10.com/centos/4.5/isos/i386/CentOS-4.5-i386-bin1of4.iso
  CD2下载:http://mirror.be10.com/centos/4.5/isos/i386/CentOS-4.5-i386-bin2of4.iso
  CD3下载:http://mirror.be10.com/centos/4.5/isos/i386/CentOS-4.5-i386-bin3of4.iso
  CD4下载:http://mirror.be10.com/centos/4.5/isos/i386/CentOS-4.5-i386-bin4of4.iso

  附2:自动编译安装Apache+PHP+MySQL的脚本
  http://blog.zyan.cc/read.php/200.htm
Tags: ,

缅怀QQ、MSN时代[原创]

[不指定 2007-7-25 15:01 | by 张宴 ]
  为了防止使用QQ、MSN等IM工具而导致商业机密被竞争对手截获,要求所有人禁止使用QQ、MSN,改用新浪自己的聊天工具UC讨论业务、传递文件。

  我的UC号103500(特殊号码:10+新浪员工号3500)在入职那天就拥有了,但我未曾理过它,直到今天才去使用。以后,将天天与它相伴了。

  说实话,目前公开发布的UC2006正式版确实不怎么样,不过正在内部测试的UC2007beta1无论从UI界面,还是功能上来说,都还不错。以下为2007年7月19日的UC2007beta1内测版截图:

  点击在新窗口中浏览此图片

  在理想国际大厦18层,告别QQ、MSN时代,就在今天;在全国,告别QQ、MSN时代,时间依旧遥远……
Tags: , ,
  [文章作者:张宴 本文版本:v1.0 最后修改:2007.07.24 转载请注明出处:http://blog.zyan.cc]

  新增的一组Apache服务器上线以来,我用netstat -an命令发现服务器中有大量状态为TIME-WAIT的TCP连接,于是用/sbin/sysctl -a查看了一下Linux的各项内核参数,并翻阅有关资料,决定修改其中的两项参数,以达到减少TCP连接中TIME-WAIT sockets的目的。

  vi /etc/sysctl.conf
  编辑/etc/sysctl.conf文件,增加三行:
引用
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

  说明:
  net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
  net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
  net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

  再执行以下命令,让修改结果立即生效:
  /sbin/sysctl -p

  用以下语句看了一下服务器的TCP状态:
  netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
  返回结果如下:
  ESTABLISHED 1423
  FIN_WAIT1 1
  FIN_WAIT2 262
  SYN_SENT 1
  TIME_WAIT 962

  效果:处于TIME_WAIT状态的sockets从原来的10000多减少到1000左右。处于SYN_RECV等待处理状态的sockets为0,原来的为50~300。

  附:TCP状态变迁图,见我的另一篇文章《查看Apache并发请求数及其TCP连接状态
Tags: ,
  [文章作者:张宴 本文版本:v1.0 最后修改:2007.08.02 转载请注明出处:http://blog.zyan.cc]

  Squid web缓存加速软件目前已经是新浪、搜狐、网易等各大网站广泛应用。Squid会在设置的缓存目录下建立多个目录,每一个目录下又建立多个目录,然后才在最里层的目录中存放缓存文件(object)。squid会根据用户请求网页的URL进行哈希,生成缓存文件,存放在某一个目录中。squid启动之后,将在内存中建立一个哈希表,记录硬盘中缓存文件配置的情形。

  对于类似http://you.video.sina.com.cn/index.html之类的网页,squid只会生成一个缓存文件。可以用squid附带的squidclient工具清除:
引用
squidclient -m PURGE -p 80 "http://you.video.sina.com.cn/index.html"


  而对于带有参数的网页,例如新浪播客的Flash播放器http://vhead.blog.sina.com.cn/player/outer_player.swf?auto=0&vid=4469852&uid=1278987704,因“?”后面的参数不同,导致URL也不同,squid会生成多个缓存文件,哈希分散存放在不同的目录。如果修改了这个outer_player.swf文件,要更新squid缓存就要去清除不同目录下及内存中的很多个缓存文件,十分麻烦,于是我编写了一个Linux下的shell脚本,去完成这件麻烦的事:

  脚本文件名:clear_squid_cache.sh(8月2日修正了UC网友“城市中的寂寞”反馈的BUG)
引用
#!/bin/sh
squidcache_path="/data1/squid/var/cache"
squidclient_path="/usr/local/squid/bin/squidclient"
grep -a -r $1 $squidcache_path/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}' > cache_list.txt
for url in `cat cache_list.txt`; do
$squidclient_path -m PURGE -p 80 $url
done

  注意:请赋予clear_squid_cache.sh可执行权限(命令:chmod +x ./clear_squid_cache.sh)。请确保脚本所在目录可写。

  设置:
  squidcache_path= 表示squid缓存目录的路径
  squidclient_path= 表示squidclient程序所在的路径,默认为squid安装目录下的bin/squidclient

  用法:
  1、清除所有Flash缓存(扩展名.swf):
  ./clear_squid_cache.sh swf

  2、清除URL中包含sina.com.cn的所有缓存:
  ./clear_squid_cache.sh sina.com.cn

  3、清除文件名为zhangyan.jpg的所有缓存:
  ./clear_squid_cache.sh zhangyan.jpg

  效率:
  经测试,在DELL 2950上清除26000个缓存文件用时2分钟左右。平均每秒可清除缓存文件177个。
Tags: , ,
  [文章作者:张宴 本文版本:v1.1 最后修改:2007.07.27 转载请注明出处:http://blog.zyan.cc]

  这两天搭建了一组Apache服务器,每台服务器4G内存,采用的是prefork模式,一开始设置的连接数太少了,需要较长的时间去响应用户的请求,后来修改了一下Apache 2.0.59的配置文件httpd.conf:
引用
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves

StartServers         10
MinSpareServers      10
MaxSpareServers      15
ServerLimit          2000
MaxClients           2000
MaxRequestsPerChild  10000



  查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):
  Linux命令:
引用
ps -ef | grep httpd | wc -l

  返回结果示例:
  1388
  表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整,我这组服务器中每台的峰值曾达到过2002。


  查看Apache的并发请求数及其TCP连接状态:
  Linux命令:
引用
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

  (这条语句是从技术总监王老大那儿获得的,非常不错)
  返回结果示例:
  LAST_ACK 5
  SYN_RECV 30
  ESTABLISHED 1597
  FIN_WAIT1 51
  FIN_WAIT2 504
  TIME_WAIT 1057
  其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。


  关于TCP状态的变迁,可以从下图形象地看出:
  点击在新窗口中浏览此图片  
  状态:描述
  CLOSED:无连接是活动的或正在进行
  LISTEN:服务器在等待进入呼叫
  SYN_RECV:一个连接请求已经到达,等待确认
  SYN_SENT:应用已经开始,打开一个连接
  ESTABLISHED:正常数据传输状态
  FIN_WAIT1:应用说它已经完成
  FIN_WAIT2:另一边已同意释放
  ITMED_WAIT:等待所有分组死掉
  CLOSING:两边同时尝试关闭
  TIME_WAIT:另一边已初始化一个释放
  LAST_ACK:等待所有分组死掉
Tags: , ,
  上午11:23左右,在公司无法访问百度,开始我还怀疑是公司网络(网通线路)的问题,后来在BBS上看到还有其他地区的网通用户也都无法访问百度。

  后来获知,百度服务器托管的中国网通土城IDC机房发生故障,百度的网通服务器全部无法访问。托管在该机房的大型网站还有搜狐、TOM、九城。我用Linux的dig命令查询出百度的网通IP──202.108.22.5、202.108.22.43,直接访问IP也无法打开:
引用
[root@zhangyan4 zhangyan4]# dig www.baidu.com
;; ANSWER SECTION:
www.baidu.com.          84      IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       303     IN      A       202.108.22.5
www.a.shifen.com.       303     IN      A       202.108.22.43

  20多分钟后,百度恢复正常。我再次dig一下www.baidu.com,发现域名已经解析到220.181.37.4、220.181.38.4这两个电信的IP上:
引用
[root@zhangyan4 zhangyan4]# dig www.baidu.com
;; ANSWER SECTION:
www.baidu.com.          129     IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       356     IN      A       220.181.37.4
www.a.shifen.com.       356     IN      A       220.181.38.4


  百度在DNS服务器更改域名A记录后,几分钟后理应可以生效。但是域名的TTL记录设置了缓存的时间,在这个时间内,如果需要重新解析域名,会直接从用户本地的缓存读取,而不是直接向DNS服务器请求。这样就导致了在百度网通机房发生故障的那段时间内,访问过百度的网通用户在百度切换域名后的一段时间内仍然无法访问。

  上周,我部署过一组的服务器,可以像百度一样进行电信、网通线路互相切换的容灾处理。但电信切到网通,网通切到电信,必将导致其中一方用户的访问速度变慢,所以只是解决故障的权宜之计。等我们部门本季度的服务器采购到位后,我们将部署北京电信与外地电信,北京网通与外地网通之间的冗余互备。
  点击在新窗口中浏览此图片
  北京时间7月16日5时5分(委内瑞拉当地时间15日17时5分),第42届美洲杯决赛在马拉开波打响,巴西3比0完胜阿根廷,第8次夺得美洲杯冠军……
  在天色破晓之前,我想要爬上山巅,仰望星辰,向时间企求永远。
  当月光送走今夜,我想要越入海面,找寻起点,看誓言可会改变。
  年轻的泪水不会白流,痛苦和骄傲这一生都要拥有。
  年轻的心灵还会颤抖,再大的风雨我和你也要向前冲。
  永远不回头,不管天有多高,忧伤和寂寞,感动和快乐,都在我心中。
  永远不回头,不管路有多长,黑暗试探我,烈火燃烧我,都要去接受。
  永远不回头!

  北京时间7月15日晚,中国队迎来亚洲杯小组赛第二场比赛,对手是小组头号劲敌伊朗队,比赛前段中国队表现精彩,邵佳一第6分钟利用任意球得分先声夺人,第32分钟毛剑卿再将比分扩大;不过此后伊朗队展开反扑,半场结束前赞迪利用任意球破门,下半场较量中国队场面被动,终被内科南于第73分钟将比分追平,最终双方2-2握手言和。

  更多视频:『播客:中国队2007年亚洲杯比赛视频专辑
       『小组赛第一场:中国队5:1马来西亚
Tags: ,
  实现功能:当用户在本地客户端某目录内建立、修改、删除目录或文件、修改目录或文件的属性,只要执行相同的shell脚本,rsync就会自动找出有改动或删除的数据,将其传送到服务器上,使服务器端某目录内的数据跟本地客户端某目录内的数据保持一致。

  ★方式一:

  一、服务器端(例:10.0.0.1*):
  1、创建用户和组
Tags: , ,

迈出北京,扎根全国[原创]

[不指定 2007-7-12 23:58 | by 张宴 ]
  sina播客的访问量越来越高,北京机房的网络带宽越来吃紧,服务器的系统负载居高不下,每天的系统报警邮件不下百封。必须对播客的原有网络构架做出调整了,于是,在北京以外的城市部署服务器,成了迫在眉睫的事。

  这周三,我加班到晚上11点,终于画出新的网络逻辑结构图和网络物理结构图,Q3(第三季度)将按照这种结构在全国部署服务器。同事LB更郁闷,填的服务器采购单因为成本上升的百分比太高,被打回重填N多次。今天,我们的“先遣部队”──从博客部门借来的几台服务器在广州电信机房安家,采购的新服务器将陆续到位。
  北京时间7月9日6时50分(委内瑞拉当地时间8日18时50分),美洲杯1/4决赛开始最后1场角逐。阿根廷4比0完胜秘鲁……


  北京时间7月8日6时05分(委内瑞拉当地时间7日18时05分),美洲杯1/4决赛开始第2场角逐,巴西6比1大胜智利,罗比尼奥梅开二度,以6球高居射手榜首位。胡安、巴普蒂斯塔、若苏埃、洛韦各下一城,智利前锋苏阿索攻入安慰球。
Tags:

再登八达岭长城[原创]

[不指定 2007-7-8 23:59 | by 张宴 ]
  去年7月(大三暑假)来北京实习时,曾去过一次八达岭长城,当时天气不好,大雾弥漫,无法领阅蜿蜒长城的风采。

  今天,周末,我和大学室友MJ再次前往八达岭。从住处坐“运通106”到西直门,再坐“地铁2号线”到积水潭地铁站A出口下车,再向东步行至德胜门箭楼脚下,坐919路公交车到达八达岭。919路公交车的支线很多,还有些旅游车票价很贵,只有在德胜门箭楼下的公交站中的919路公交车才是最便宜的,票价12元,刷卡9.6元。

  沿途的长城还有居庸关长城、水关长城,但没有八达岭长城名气大。

  八达岭长城门票:成人票45元,学生票25元

  陡峭之险
  点击在新窗口中浏览此图片

北京西站,来与往[原创]

[不指定 2007-7-6 20:43 | by 张宴 ]
  昨晚,北京西站,接人。大学室友MJ来北京,将我的大学本科毕业证和经济学学士学位证带了过来。大学,终究成为我人生中的一段过往的历史,再也不能重来。

  昨晚,北京西站,送人。女友要出差1个半月,地方又远,时间又久,真是郁闷+ing。

  点击在新窗口中浏览此图片
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]