分页: 7/9 第一页 上页 2 3 4 5 6 7 8 9 下页 最后页 [ 显示模式: 摘要 | 列表 ]
  [文章作者:张宴 本文版本:v1.0 最后修改:2007.08.15 转载请注明出处:http://blog.s135.com]

  当PHP截取中英文混合字符串时,最后一个汉字经常被拆成两半,例:截取字符串的前18个字
Tags:

我的技术文章与计算机作品汇总页
张宴(本页网址:http://blog.s135.com/tech/

文章推荐级别:最高点击在新窗口中浏览此图片  较高点击在新窗口中浏览此图片  普通点击在新窗口中浏览此图片

  Linux系统
    ★ Apache、Nginx及其他Web服务器
      ● [文章] Nginx虚拟主机多server_name的顺序问题 [作者:张宴]
      ● [文章] Nginx+PHP+MySQL双机互备、全自动切换方案 [作者:张宴]
      ● [文章] Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 使用Nginx轻松实现开源负载均衡──9月20日在ChinaUnix技术沙龙上的演讲PPT 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] Nginx 0.7.x + PHP 5.2.8(FastCGI)搭建胜过Apache十倍的Web服务器(第4版) 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 解决Nginx  + PHP(FastCGI)遇到的502 Bad Gateway错误 [作者:张宴]
      ● [文章] 使用Nginx作为Web服务器的国内网站 [作者:张宴]
      ● [文章] Nginx 0.6.31 + PHP 5.2.6(FastCGI)搭建胜过Apache十倍的Web服务器(第3版) 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 为Apache编译添加mod_expires模块出错的解决笔记 [作者:张宴]
      ● [文章] 解决“HTTP/1.1 405 Method not allowed”问题,让静态文件响应POST请求 [作者:张宴]
      ● [文章] Nginx + PHP5(FastCGI)生产环境跑PHP动态程序可超过“700次请求/秒” [作者:张宴]
      ● [文章] 视频:Nginx versus Apache (两者的对比)
      ● [文章] Nginx 0.5.33 + PHP 5.2.5(FastCGI)搭建胜过Apache 10倍的Web服务器(第2版) 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] Nginx 简单的负载均衡配置示例 [作者:张宴]
      ● [文章] Nginx 0.5.31 + PHP 5.2.4搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 为Apache配置mod_deflat压缩输出 [作者:张宴]
      ● [文章] 修改Linux内核参数,减少TCP连接中的TIME-WAIT sockets [作者:张宴]
      ● [文章] 查看Apache并发请求数及其TCP连接状态 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] AutoAPM--Linux下自动编译Apache+PHP+MySQL脚本 [作者:张宴]
      ● [文章] Linux下Apache日志分析工具--AWStats安装使用 [作者:张宴]

    ★ PHP配置与优化
      ● [文章] 利用Xdebug分析PHP程序,找出性能瓶颈 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 安装及配置eaccelerator-0.9.5加速PHP-5.2.1 [作者:张宴]
      ● [文章] Linux下为RPM方式安装的PHP添加GD库支持 [作者:张宴]

    ★ MySQL数据库
      ● [文章] 快捷启动、停止、重启、杀死指定端口MySQL进程的脚本 [作者:张宴]
      ● [文章] MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 使用Google的开源TCMalloc库,提高MySQL在高并发情况下的性能 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] MySQL数据库服务器在Flickr、Fotolog、Wkipedia、Facebook等国际知名网站中的使用数量 [作者:张宴]
      ● [文章] 命令行方式管理MySQL数据库实例 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] MySQL中将字符串aaa批量替换为bbb的SQL语句 [作者:张宴]
      ● [文章] phpMyAdmin之一:可管理多台远程MySQL服务器的phpMyAdmin 2.10.2 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] phpMyAdmin之二:修改phpMyAdmin使其能够管理多台远程MySQL服务器 [作者:张宴]
      ● [文章] MySQL数据库故障解决──修复损坏的表 [作者:张宴]

    ★ Squid、Varnish、Memcached及其他缓存服务器
      ● [文章] 百度、新浪、Mixi、Apache社区赞助的开源key-value分布式存储系统 [作者:张宴]
      ● [文章] Memcached的代理服务器软件:magent使用小记 [作者:张宴]
      ● [文章] 利用shell命令操作Memcached [作者:张宴]
      ● [文章] 利用Tokyo Tyrant构建兼容Memcached协议、支持故障转移、高并发的分布式key-value持久存储系统 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] MySQL Memcache_engine的安装与使用 [作者:张宴]
      ● [源码] dbcached──“分布式 key-value 数据库内存缓存系统” 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 减少Linux下Squid服务器的TIME_WAIT套接字数量 [作者:张宴]
      ● [文章] 使用Varnish代替Squid做网站缓存加速器的详细解决方案 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 找到一款批量清除Squid缓存的小工具 [作者:张宴]
      ● [文章] 初步试用Squid的替代产品──Varnish Cache网站加速器 [作者:张宴]
      ● [书籍] Squid中文权威指南 (在线版) (PDF下载) [作者:彭勇华]
      ● [文章] 清除指定squid缓存文件的脚本 点击在新窗口中浏览此图片 [作者:张宴]

    ★ 其他
      ● [文章] 我的开源PHP中文分词扩展:PHPCWS 1.0.0 点击在新窗口中浏览此图片 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 一款不错的Linux命令行下的FTP客户端软件 [作者:张宴]
      ● [文章] 亿级数据的高并发通用搜索引擎架构设计 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] Linux下简单限制网卡的带宽 [作者:张宴]
      ● [文章] 基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] IE浏览器下同一网页多图片显示的瓶颈与优化 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 又一个新浪UNIX开源软件项目──xbayDNS [项目团队:新浪研发中心──系统研发]
      ● [文章] 新浪发起的UNIX开源软件项目 [项目团队:新浪互动社区事业部──博客产品]
      ● [文章] YouTube 系统架构 [作者:Cuong Do & Kyle Cordes]
      ● [文章] 我所熟悉的网站负载均衡技术 [作者:张宴]
      ● [文章] Linux索引节点(inode)用满导致的一次故障 [作者:张宴]
      ● [文章] 一款不错的网站压力测试工具webbench [作者:张宴]
      ● [文章] IP别名+TCP转发+端口映射实现跨网络访问 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] Linux下快速搭建ntp时间同步服务器 [作者:张宴]
      ● [文章] Linux服务器监控系统 ServMon V1.1 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] Linux服务器监控系统 ServMon V1.0 [作者:张宴]
      ● [书籍] 针对服务器运行环境安装CentOS 4.X Linux 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 使用Linux的rsync命令实现:多服务器镜像同步 [作者:张宴]
      ● [文章] 用rsync实现网站镜像和备份
      ● [文章] Fedora Core 4.0 简体中文语言包的安装 [作者:张宴]

    ★ Linux命令与shell脚本
      ● [文章] PHPSH:Facebook开发的PHP Shell的安装与使用 [作者:张宴]
      ● [文章] PHP多进程并发控制的测试用例 点击在新窗口中浏览此图片 [作者:张宴]




  硬件设备
    ★ 负载均衡交换机
      ● [文章] 利用NetScaler和自行编写的健康检查脚本,完美解决多台MySQL Slave数据库的负载均衡 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] F5 BIG-IP负载均衡器配置实例与Web管理界面体验 点击在新窗口中浏览此图片 [作者:张宴]




  编程语言
    ★ PHP/JavaScript编程
      ● [文章] AJAXCDR:利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求 点击在新窗口中浏览此图片 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 支持MSNP15协议与离线消息的PHP MSN Class,可实现MSN机器人 [作者:张宴]
      ● [文章] 同一域名对应多个IP时,PHP获取远程网页内容的函数 [作者:张宴]
      ● [文章] 通过浏览器从SVN更新代码到Linux服务器的指定目录 [作者:张宴]
      ● [文章] 一个发送HTML邮件的PHP函数 [作者:张宴]
      ● [文章] 采用curl库在PHP程序之间传递数组 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] PHP截取中文字符串不出现?号的解决方法 [作者:张宴]
      ● [文章] PHP XML Library:一个不错的PHP XML操作类
      ● [文章] PHP中常用的字符串函数
      ● [文章] 钢笔手写体生成工具(PHP)V1.0 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] PHP实现http与https转化 [作者:张宴]
      ● [文章] 用GD库生成高质量的缩略图片
      ● [文章] 部分PHP问题总结

    ★ HTML/JS
      ● [文章] dp.SyntaxHighlighter介绍:在网页中加亮显示源代码的工具 [作者:张宴]
      ● [文章] IE浏览器flash控件的激活方式介绍 [作者:张宴]
      ● [文章] 防止电子邮件地址被搜索到的新方法 [作者:张宴]
      ● [文章] 网页制作:带有滚动条的表格 [作者:张宴]




  Windows 2000/XP/2003/Vista
    ★ 软件分享
      ● [下载] PHPChina.com旗下的开源技术杂志《PHPer》第12期
      ● [网站] UnixSNS──Linux/Unix技术工程师社交网络
      ● [网站] 一个分类搜集了众多开源软件官方网址的站点
      ● [下载] 一款不错的开源密码管理软件──KeePass
      ● [下载] PHP编程的好工具:《PHP Designer 2007 专业版》
      ● [下载] 可以上传、下载文件的SSH客户端软件--SecureCRT绿色版

    ★ 其他
      ● [文章] 再谈Dr.COM宽带认证客户端共享上网破解V3.46(d13) 点击在新窗口中浏览此图片 [作者:张宴]
      ● [文章] 软件测试用例(Test Case)设计 [作者:Vince]
      ● [文章] IE7浏览器简体中文版的安装、设置和使用方法(并介绍了非正版Windows用户如何安装IE7) [作者:张宴]
      ● [文章] 如何寻找联想电脑驱动程序 [作者:张宴]
      ● [文章] Microsoft SQL Server数据库的备份与恢复 [作者:张宴]
      ● [文章] 解决IE浏览器打不开的办法 [作者:张宴]




  个人计算机作品
    ★ 可下载或开放源代码的作品
      ● [软件] APMServ 拥有图形界面的快速搭建Apache、PHP、MySQL、ASP、Perl网站服务器平台的绿色软件 点击在新窗口中浏览此图片
       [作者:张宴]
      ● [软件] 《APMServ 5.2.6》:一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP平台的绿色软件 点击在新窗口中浏览此图片 [作者:张宴]
      ● [插件] MySQL中文全文索引插件 mysqlcft 1.0.0 点击在新窗口中浏览此图片 [作者:张宴]
      ● [源码] dbcached──“分布式 key-value 数据库内存缓存系统” 点击在新窗口中浏览此图片 [作者:张宴]
      ● [源码] Linux服务器监控系统 ServMon V1.1 点击在新窗口中浏览此图片 [作者:张宴]
      ● [源码] Linux服务器监控系统 ServMon V1.0 [作者:张宴]
      ● [书籍] 针对服务器运行环境安装CentOS 4.X Linux 图文幻灯电子书 点击在新窗口中浏览此图片 [作者:张宴]
      ● [源码] 钢笔手写体生成工具(PHP)V1.0 点击在新窗口中浏览此图片 [作者:张宴]
      ● 更多>>>

    ★ 只提供部分源代码和信息的作品
      ● [架构] 基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计 点击在新窗口中浏览此图片 [作者:张宴]
      ● [作品] Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现 点击在新窗口中浏览此图片 [作者:张宴]
      ● [架构] 以最少的Web服务器达到最大的性能──“互联星空播客” 点击在新窗口中浏览此图片 [作者:张宴]
      ● [演示] 大学期间开发的中南民族大学学生管理信息系统 [作者:张宴]
      ● [演示] 大学期间为北京博卡先锋软件开发有限公司定制开发的SAPM软件 [作者:张宴]
      ● [硬件] 自行打造的袖珍电脑主机 [作者:张宴]
      ● 更多>>>

  本页内容将陆续增加修改。最后修改时间:2009年03月11日

  [文章作者:张宴 本文版本:v1.1 最后修改:2010.02.21 转载请注明出处:http://blog.s135.com]

一、搭建时间同步服务器
1、编译安装ntp server
wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2.6.tar.gz
tar zxvf ntp-4.2.6.tar.gz
cd ntp-4.2.6
./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
make && make install

注:如以上下载地址无法访问,请从ntp官方下载网页(http://www.ntp.org/downloads.html)寻找下载地址。

2、修改ntp.conf配置文件
vi /etc/ntp.conf

①、第一种配置:允许任何IP的客户机都可以进行时间同步
将“restrict default kod nomodify notrap nopeer noquery”这行修改成:
restrict default nomodify

配置文件示例:/etc/ntp.conf

②、第二种配置:只允许192.168.18.***网段的客户机进行时间同步
在restrict default nomodify notrap noquery(表示默认拒绝所有IP的时间同步)之后增加一行:
restrict 192.168.18.0 mask 255.255.255.0 nomodify

配置文件示例:/etc/ntp.conf

3、以守护进程启动ntpd
/usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid

4、ntpd启动后,客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronization found”错误。

二、配置时间同步客户机
vi /var/spool/cron/root

增加一行,在每天的5点13分、9点13分、14点13分、19点13分与时间同步服务器进行同步
13 5,9,14,19 * * * /usr/sbin/ntpdate 192.168.18.2

备注:如果客户机没有ntpdate,可以下载ntpdate.tar.gz到/usr/sbin/目录,然后解压:
wget http://blog.s135.com/attachment/200708/ntdate.tar.gz
cd /usr/sbin/
tar zxvf ntpdate.tar.gz
Tags:
  [文章作者:张宴 本文版本:v1.0 最后修改:2007.08.06 转载请注明出处:http://blog.s135.com]

  我一直习惯用phpMyAdmin对MySQL数据库进行管理,曾修改了一个《可管理多台远程MySQL服务器的phpMyAdmin 2.10.2》。但有些机器上因为安全等因素,只设置了允许从本机访问自身的MySQL端口,而且没有安装Apache和PHP,因而不能使用phpMyAdmin。于是,我只好使用命令行方式来对MySQL数据库进行管理。为了方便以后从命令行操作数据库可以更方便(拷贝、粘贴),我写下了这篇文章。

一、从命令行登录MySQL数据库服务器
1、登录使用默认3306端口的MySQL
/usr/local/mysql/bin/mysql -u root -p

2、通过TCP连接管理不同端口的多个MySQL(注意:MySQL4.1以上版本才有此项功能)
/usr/local/mysql/bin/mysql -u root -p --protocol=tcp --host=localhost --port=3307

3、通过socket套接字管理不同端口的多个MySQL
/usr/local/mysql/bin/mysql -u root -p --socket=/tmp/mysql3307.sock

4、通过端口和IP管理不同端口的多个MySQL
/usr/local/mysql/bin/mysql -u root -p -P 3306 -h 127.0.0.1



二、数据库操作SQL语句
1、显示服务器上当前存在什么数据库
SHOW DATABASES;

2、创建名称为rewin的数据库
CREATE DATABASE rewin;

3、删除名称为rewin的数据库
DROP DATABASE rewin;
Tags: , ,
  [文章作者:张宴 本文版本:v1.0 最后修改:2007.08.03 转载请注明出处:http://blog.s135.com]

  我管理服务器太多了,不可能每时每刻都登录到上面查看服务器状况,于是写了一个“服务器监控系统 ServMon V1.0”。其原理是用shell脚本定时抓取被监控服务器上信息,再用curl POST到监控机的PHP接口程序上,由PHP接口程序对信息进行分析,如果存在异常,则发送报警邮件给管理员。

  下午,ServMon V1.0 已经在sina播客服务器上部署,以下为ServMon的删节版内容,只监控磁盘分区使用率和Swap交换空间两项:

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

  1、被监控端服务器的shell脚本(Linux)
  (1)、发送磁盘分区使用率给监控端接口http://192.168.0.28/servmon/interface.php的脚本
引用
/usr/local/servmon/bin/diskstat_send
#!/bin/sh
LANG=zh_cn
disk=$(/bin/df -kP | grep / | awk -F ' ' ' {print $6":"$5}' | awk -F '%' ' {print $1}' | tr -s '\n' ';')
today=$(date -d "today" +"%Y-%m-%d_%H:%M:%S")
ip=$(/sbin/ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk '{print $2;}' | awk -F':' '{print $2;}' | tr -s '\n' ';')
/usr/bin/curl -d menu=diskstat -d password=$2 -d date=$today -d ip=$ip -d data=$disk $1
Tags: ,
点击在新窗口中浏览此图片  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.s135.com/book/squid/ (便于阅读与查询)

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

  在线版(FLASH):http://blog.s135.com/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.s135.com/read.php/200.htm
Tags: ,
  [文章作者:张宴 本文版本:v1.0 最后修改:2007.07.24 转载请注明出处:http://blog.s135.com]

  新增的一组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.s135.com]

  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.s135.com]

  这两天搭建了一组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: , ,
  实现功能:当用户在本地客户端某目录内建立、修改、删除目录或文件、修改目录或文件的属性,只要执行相同的shell脚本,rsync就会自动找出有改动或删除的数据,将其传送到服务器上,使服务器端某目录内的数据跟本地客户端某目录内的数据保持一致。

  ★方式一:

  一、服务器端(例:10.0.0.1*):
  1、创建用户和组
Tags: , ,
  4月,我曾写过一篇文章《修改phpMyAdmin使其能够管理多台远程MySQL服务器》。今天架设sina播客测试环境时,再次用到phpMyAdmin管理远程数据库,于是干脆根据其最新版本V2.10.2做了一个可直接下载使用的、可管理多台远程MySQL服务器、同时支持Windows和Linux的phpMyAdmin 2.10.2。

  下载地址:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=1848024

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

  简介
  对于选择Linux 作为应用平台的的中小型企业或网站来说,往往面临如何实现数据远程备份或者网站镜象的问题,虽然有商业化的备份和镜象产品可供选择,但这些产品的价格往往过于昂贵。因此如何利用自由软件高效实现远程备份和网站镜象就成为一个值得讨论的话题。

  通过网络进行远程数据备份或者网站镜象的最简单的方法就是使用wget,但是这种方式每次都需要将所有数据都重新在网络上传输一遍,而不考虑哪些文件是经过更新的,因此效率非常低下。尤其在需要备份的数据量很大的时候,往往需要花费数个小时来在网络上进行数据传输。

  因此这里就介绍一种高效的网络远程备份和镜象工具-rsync,它可以满足绝大多数要求不是特别严格的备份需求。

Tags:
  [文章作者:张宴 本文版本:v1.0 最后修改:2007.06.28 转载请注明出处:http://blog.s135.com]

  经济学中有一条著名的80-20定律,引用到编程中,就是:80%的性能瓶颈是由20%的代码引起的。借助PHP的XDebug扩展,可以有效地找出这20%的代码。

  一、安装配置
  1、下载PHP的XDebug扩展,网址:http://xdebug.org/

  2、在Linux下编译安装XDebug
引用
tar -xzf xdebug-2.0.0RC3.gz
cd xdebug-2.0.0RC3
/usr/local/php/bin/phpize
./configure --enable-xdebug
cp modules/xdebug.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/

  注:/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/不同的PHP版本路径不同,也不一定要放在该路径,可以在zend_extension_ts中自行指定xdebug.so所在位置。
Tags: ,
分页: 7/9 第一页 上页 2 3 4 5 6 7 8 9 下页 最后页 [ 显示模式: 摘要 | 列表 ]