April 1, 2010
使用Nginx轻松实现开源负载均衡──9 月20日在ChinaUnix技术沙龙上的演讲PPT[原创]
"[文章作者:张宴 本文版本:v1.0 最后修改:2008.09.21 转载请注明原文链接: http://blog.s135.com/post/369/]\n9月20日下午,我应邀参加了 ChinaUnix 举办的以“如何搞定服务器负载均衡?”为主题的技术沙龙( http://linux.chinaunix.net/bbs/thread-1019366-1-1.html), 很高兴能够跟诸多业界精英一起探讨交流,很荣幸能够与Unix资深系统工程师──田逸、HonestQiao,以及F5资深技术工程师──杨明非,同台演 讲。\n《使用Nginx轻松实现开源负载均衡》是我的演讲PPT(PowerPiont),现提供下载。\nPPT分为四个 部分: 1、介绍Nginx的基本特征,以及使用Nginx做负载均衡器的理由。\n2、用实例,来介绍 Nginx负载均衡在大型网站的典型应用。\n3、以实现网站动静分离为原型,对NetScaler硬件七层负载均衡和Nginx软件负 载均衡做一个对比。\n①、NetScaler负载均衡交换机动静分离系统架构图 ②、Nginx …"
April 1, 2010
Nginx 简单的负载均衡配置示例[原创]
"www.s135.com 和 blog.s135.com 域名均指向 Nginx 所在的服务器IP。\n用户访问 http://www.s135.com,将其负载均 衡到192.168.1.2:80、192.168.1.3:80、192.168.1.4:80、192.168.1.5:80四台服务器。\n用户访问 http://blog.s135.com, 将其负载均衡到192.168.1.7服务器的8080、8081、8082端口。\n以下为配置文件nginx.conf:\n引用\nuser www www;\nworker_processes 10;\n#error_log logs/error.log;\n#error_log logs/error.log notice;\n#error_log logs/error.log info;\n#pid logs/nginx.pid;\n#最大文件描述 符\nworker_rlimit_nofile 51200;\nevents\n{\nuse epoll;\nworker_connections 51200;\n}\nhttp\n{\ninclude …"
April 1, 2010
Nginx+PHP+MySQL双机互备、全自动切换方案 [原创]
"[文章作者:张宴 本文版本:v1.0 最后修改:2008.11.19 转载请注明原文链接: http://blog.s135.com/post/379/]\n在生产应用中,某台“Nginx+PHP+MySQL”接口数据服务器,扮演的角色十分重要,如果服务器硬件或Nginx、MySQL发生故障,而短时 间内无法恢复,后果将非常严重。为了避免单点故障,我设计了此套方案,编写了failover.sh脚本,实现了双机互备、全自动切换,故障转移时间只需 几十秒。\n一、双机互备、全自动切换方案: 1、拓扑图: 2、解释: (1)、假设外网域名blog.s135.com解析到外网虚拟IP 72.249.146.214上,内网hosts设置db10对应内网虚拟IP 192.168.146.214\n(2)、默认情况 下,由主机绑定内、外网虚拟IP,备机作为备份,当主机的MySQL、Nginx或服务器出现故障无法访问时,备机会自动接管内、外网虚拟IP。两台服务 器都启动负责监控、自动切换虚拟IP的守护进程/usr/bin/nohup /bin/sh …"
April 1, 2010
修改phpMyAdmin使其能够管理多台远程MySQL 服务器[转载]
"[文章作者:张宴 本文版本:v1.2 最后修改:2007.07.09 转载请注明出处: http://blog.s135.com]\n需 求背景: phpMyAdmin是一款不错的MySQL在线管理工具,但phpMyAdmin的cookie登录方式只能输入MySQL数据库 的用户名和密码,而想更改MySQL服务器地址和端口则须修改其配置文件config.default.php。当拥有多台数据库服务器,每台服务器又在 不同端口启动了多个MySQL服务,每次都修改配置文件就显得很麻烦,因此需要能够在登录界面直接输入MySQL服务器地址和端口的功能。\n功 能要求: 假设phpMyAdmin的访问网址为 http://192.168.1.25/phpmyadmin/,能够通过输入MySQL服务器地址、端口、 用户名、密码登录远程MySQL服务器,对远程数据库进行管理。\n修改后的phpMyAdmin登录入口截图: 下 载地址: http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=1848024\n实 现步骤:\n1、打开“路 …"
April 1, 2010
MySQL数据库服务器在Flickr、Fotolog、 Wkipedia、Facebook等国际知名网站中的使用数量
"2008年4月18日,在Alexa安排的一次“ Scaling MySQL — Up or Out?”的小组辩论中,MySQL、Sun、 Flickr、Fotolog、Wkipedia、Facebook、YouTube等国际知名网站的DBA们,对其网站MySQL数据库服务器、Web 服务器、缓存服务器的数量,MySQL版本,编程语言类型,操作系统类型等问题进行了回答。 "
April 1, 2010
查看Apache并发请求数及其TCP连接状态[原创]
"[文章作者:张宴 本文版本:v1.1 最后修改:2007.07.27 转载请注明出处: http://blog.s135.com]\n这两天搭建了一组Apache服务器,每台服务器4G内存,采用的是prefork模式,一开始设置的连接数太少了,需要较长的时间去响应用户的请求, 后来修改了一下Apache 2.0.59的配置文件httpd.conf:\nprefork 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 …"
April 1, 2010
清除指定squid缓存文件的脚本[原创]
"官方教程:\n[文章作者:张宴 本文版本:v1.0 最后修改:2007.08.02 转载请注明出处: http://blog.s135.com]\nSquid web缓存加速软件目前已经是新浪、搜狐、网易等各大网站广泛应用。Squid会在设置的缓存目录下建立多个目录,每一个目录下又建立多个目录,然后才在 最里层的目录中存放缓存文件(object)。squid会根据用户请求网页的URL进行哈希,生成缓存文件,存放在某一个目录中。squid启动之后, 将在内存中建立一个哈希表,记录硬盘中缓存文件配置的情形。\n对于类似 http://you.video.sina.com.cn/index.html 之 类的网页,squid只会生成一个缓存文件。可以用squid附带的squidclient工具清除:\n引用\nsquidclient -m PURGE -p 80 “http://you.video.sina.com.cn/index.html”\n而对于带有参数的网页,例如新浪播客的Flash …"
April 1, 2010
新浪发起的UNIX开源软件项目
"Memcachedb\n协议: New BSD License 作者:stvchu, gary.caokai, forever.sky81 团队:新浪互动社区事业部──博客产品 网址: http://www.memcachedb.org/\nMemcachedb = memcache + Berkeley DB\nMemcachedb是一款支持高并发的分布式持久存储 系统,对任何原有memcached客户端来讲,它仍旧是个memcached,但是,它的数据是可以持久存储的。 前端:memcached 的网络层 后端:Berkeley DB存储\n写速度:从本地服务器通过memcache客户端(libmemcache) set 2亿条16字节长的key,10字节长的Value的记录,耗时16572秒,平均速度12000条记录/秒。 读速度:从本地服务 器通过memcache客户端(libmemcache) get 100万条16字节长的key,10字节长的Value的记录,耗时103秒,平均速度10000条记录/秒。\n• 支持的memcache命令 get, set, add, replace …"
April 1, 2010
dbcached──“分布式 key-value 数据库内存缓存系统”发布[原创]
"前言:dbcached 1.0 beta* 在 Memcached 1.2.4 的基础上编写而成,也是我的第一个开源C项目。编写 dbcached 的目的是为了最大限度的发挥 Memcached 内存缓存的优势,便捷地维护 Memcached 服务器节点哈希列表,智能地支持 Memcached 故障转移,同时保证数据的持久化存储。\ndbcached\n协议: New BSD License 作者:张宴 网址: http://code.google.com/p/dbcached/ dbcached 是什么?\n● dbcached 是一款基于 Memcached 和 NMDB 的分布式 key-value 数据库内存缓存系统。\n● dbcached = Memcached + 持久化存储管理器 + NMDB 客户端接口\n● Memcached 是一款高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。\n● NMDB 是一款多协议网络数据库(dbm类)管理器,它由内存缓存和磁盘存储两部分构成,使用 QDBM 或 Berkeley DB 作为后端数据库。\n● …"
April 1, 2010
MySQL Memcache_engine的安装与使用[原创]
"[文章作者:张宴 本文版本:v1.1 最后修改:2008.09.09 转载请注明原文链接: http://blog.s135.com/post/357/]\n鉴于国内外还没有人撰写如何安装Memcache_engine的文章,于是,我根据自己的编译安装步骤,写下此文。\nMemcache_engine是一个MySQL 5.1数据库的存储引擎,它能够让用户通过标准的SQL语句(SELECT/UPDATE/INSERTE/DELETE)访问Memcached(还支 持新浪的 Memcachedb、 dbcached)中 存放的数据。\n限制: 1、Memcache表必须有主键。 2、只能使用主 键去查询,即只能使用SELECT … FROM … WHERE id = … 方式去查询。 3、不支持自增ID。\n安装与使用: 1、编译安装memcache_engine的步骤:\ncd /tmp\nwget …"