使用Nginx轻松实现开源负载均衡──9月20日在ChinaUnix技术沙龙上的演讲PPT[原创]
[ 2008-9-21 13:21 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.09.21 转载请注明原文链接:http://blog.zyan.cc/post/369/]
9月20日下午,我应邀参加了 ChinaUnix 举办的以“如何搞定服务器负载均衡?”为主题的技术沙龙(http://linux.chinaunix.net/bbs/thread-1019366-1-1.html),很高兴能够跟诸多业界精英一起探讨交流,很荣幸能够与Unix资深系统工程师──田逸、HonestQiao,以及F5资深技术工程师──杨明非,同台演讲。
《使用Nginx轻松实现开源负载均衡》是我的演讲PPT(PowerPiont),现提供下载。
PPT分为四个部分:
1、介绍Nginx的基本特征,以及使用Nginx做负载均衡器的理由。
2、用实例,来介绍Nginx负载均衡在大型网站的典型应用。
3、以实现网站动静分离为原型,对NetScaler硬件七层负载均衡和Nginx软件负载均衡做一个对比。
9月20日下午,我应邀参加了 ChinaUnix 举办的以“如何搞定服务器负载均衡?”为主题的技术沙龙(http://linux.chinaunix.net/bbs/thread-1019366-1-1.html),很高兴能够跟诸多业界精英一起探讨交流,很荣幸能够与Unix资深系统工程师──田逸、HonestQiao,以及F5资深技术工程师──杨明非,同台演讲。
《使用Nginx轻松实现开源负载均衡》是我的演讲PPT(PowerPiont),现提供下载。
PPT分为四个部分:
1、介绍Nginx的基本特征,以及使用Nginx做负载均衡器的理由。
2、用实例,来介绍Nginx负载均衡在大型网站的典型应用。
3、以实现网站动静分离为原型,对NetScaler硬件七层负载均衡和Nginx软件负载均衡做一个对比。
利用NetScaler和自行编写的健康检查脚本,完美解决多台MySQL Slave数据库的负载均衡[原创]
[ 2008-5-29 23:21 | by 张宴 ]
[文章作者:张宴 本文版本:v1.1 最后修改:2008.07.17 转载请注明出自:http://blog.zyan.cc]
Citrix NetScaler是一款不错的4-7层硬件负载均衡交换机,市场占有率仅次于F5 BIG-IP,位居第二。NetScaler 8.0是美国思杰系统有限公司(Citrix Systems, Inc)正式推出的最新版本NetScaler产品系列。
从我的实际测试来看,NetScaler 8.0在七层负载均衡方面,性能和功能都要比F5 BIG-IP强。
NetScaler 8.0的负载均衡监控中,可以对MySQL数据库进行健康检查,而F5 BIG-IP目前只支持对Oracle和Microsoft SQL Server数据库的健康检查。
但是,NetScaler 8.0自带的MySQL健康检查脚本(nsmysql.pl)并不完善,它只能检查一条SQL语句执行是否出错,并不能检查MySQL主从结构中的MySQL Slave数据库同步是否正常、表有无损坏、同步延迟是否过大、是否出现错误、非sleeping状态的连程数是否过高等情况。于是,我根据自己的需要,为NetScaler 8.0写了一个MySQL Slave数据库负载均衡健康检查脚本(nsmysql-slave.pl),实现了上述需求。
有了“nsmysql-slave.pl”做健康检查,利用NetScaler的VIP(虚拟IP),就可以完美实现多台MySQL Slave数据库的负载均衡了。当一台MySQL Slave数据库出现不同步、表损坏、同步延迟过大(本脚本中默认设置的落后MySQL主库600秒视为延迟,可根据具体应用修改)、活动连程数太高(本脚本中默认设置的是大于200视为连程数太高,可根据具体应用修改)等情况,“nsmysql-slave.pl”就会自动将其检查出来,并告知NetScaler,NetScaler会将该数据库标识为宕机,从而不将用户的查询请求传送到这台发生故障的数据库上。故障一旦修复,“nsmysql-slave.pl”会自动告知NetScaler,该数据库已经可以使用。
“nsmysql-slave.pl”源代码如下:
Citrix NetScaler是一款不错的4-7层硬件负载均衡交换机,市场占有率仅次于F5 BIG-IP,位居第二。NetScaler 8.0是美国思杰系统有限公司(Citrix Systems, Inc)正式推出的最新版本NetScaler产品系列。
从我的实际测试来看,NetScaler 8.0在七层负载均衡方面,性能和功能都要比F5 BIG-IP强。
NetScaler 8.0的负载均衡监控中,可以对MySQL数据库进行健康检查,而F5 BIG-IP目前只支持对Oracle和Microsoft SQL Server数据库的健康检查。
但是,NetScaler 8.0自带的MySQL健康检查脚本(nsmysql.pl)并不完善,它只能检查一条SQL语句执行是否出错,并不能检查MySQL主从结构中的MySQL Slave数据库同步是否正常、表有无损坏、同步延迟是否过大、是否出现错误、非sleeping状态的连程数是否过高等情况。于是,我根据自己的需要,为NetScaler 8.0写了一个MySQL Slave数据库负载均衡健康检查脚本(nsmysql-slave.pl),实现了上述需求。
有了“nsmysql-slave.pl”做健康检查,利用NetScaler的VIP(虚拟IP),就可以完美实现多台MySQL Slave数据库的负载均衡了。当一台MySQL Slave数据库出现不同步、表损坏、同步延迟过大(本脚本中默认设置的落后MySQL主库600秒视为延迟,可根据具体应用修改)、活动连程数太高(本脚本中默认设置的是大于200视为连程数太高,可根据具体应用修改)等情况,“nsmysql-slave.pl”就会自动将其检查出来,并告知NetScaler,NetScaler会将该数据库标识为宕机,从而不将用户的查询请求传送到这台发生故障的数据库上。故障一旦修复,“nsmysql-slave.pl”会自动告知NetScaler,该数据库已经可以使用。
“nsmysql-slave.pl”源代码如下:
F5 BIG-IP负载均衡器配置实例与Web管理界面体验[原创]
[ 2008-5-22 23:33 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.05.22 转载请注明出自:http://blog.zyan.cc/f5_big_ip]
前言:最近一直在对比测试F5 BIG-IP和Citrix NetScaler负载均衡器的各项性能,于是写下此篇文章,记录F5 BIG-IP的常见应用配置方法。
目前,许多厂商推出了专用于平衡服务器负载的负载均衡器,如F5 Network公司的BIG-IP,Citrix公司的NetScaler。F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、IPv6网关、高级路由、智能端口镜像、SSL加速、智能HTTP压缩、TCP优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、Cookie加密、选择性内容加密、应用攻击过滤、拒绝服务(DoS)攻击和SYN Flood保护、防火墙—包过滤、包消毒等功能。
以下是F5 BIG-IP用作HTTP负载均衡器的主要功能:
①、F5 BIG-IP提供12种灵活的算法将所有流量均衡的分配到各个服务器,而面对用户,只是一台虚拟服务器。
②、F5 BIG-IP可以确认应用程序能否对请求返回对应的数据。假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障,F5会检查出来并将该服务器标识为宕机,从而不将用户的访问请求传送到该台发生故障的服务器上。这样,只要其它的服务器正常,用户的访问就不会受到影响。宕机一旦修复,F5 BIG-IP就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。
③、F5 BIG-IP具有动态Session的会话保持功能。
④、F5 BIG-IP的iRules功能可以做HTTP内容过滤,根据不同的域名、URL,将访问请求传送到不同的服务器。
下面,结合实例,配置F5 BIG-IP LTM v9.x:
①、如图,假设域名blog.zyan.cc被解析到F5的外网/公网虚拟IP:61.1.1.3(vs_squid),该虚拟IP下有一个服务器池(pool_squid),该服务器池下包含两台真实的Squid服务器(192.168.1.11和192.168.1.12)。
②、如果Squid缓存未命中,则会请求F5的内网虚拟IP:192.168.1.3(vs_apache),该虚拟IP下有一个默认服务器池(pool_apache_default),该服务器池下包含两台真实的Apache服务器(192.168.1.21和192.168.1.22),当该虚拟IP匹配iRules规则时,则会访问另外一个服务器池(pool_apache_irules),该服务器池下同样包含两台真实的Apache服务器(192.168.1.23和192.168.1.24)。
③、另外,所有真实服务器的默认网关指向F5的自身内网IP,即192.168.1.2。
④、所有的真实服务器通过SNAT IP地址61.1.1.4访问互联网。
详细配置步骤:
前言:最近一直在对比测试F5 BIG-IP和Citrix NetScaler负载均衡器的各项性能,于是写下此篇文章,记录F5 BIG-IP的常见应用配置方法。
目前,许多厂商推出了专用于平衡服务器负载的负载均衡器,如F5 Network公司的BIG-IP,Citrix公司的NetScaler。F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、IPv6网关、高级路由、智能端口镜像、SSL加速、智能HTTP压缩、TCP优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、Cookie加密、选择性内容加密、应用攻击过滤、拒绝服务(DoS)攻击和SYN Flood保护、防火墙—包过滤、包消毒等功能。
以下是F5 BIG-IP用作HTTP负载均衡器的主要功能:
①、F5 BIG-IP提供12种灵活的算法将所有流量均衡的分配到各个服务器,而面对用户,只是一台虚拟服务器。
②、F5 BIG-IP可以确认应用程序能否对请求返回对应的数据。假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障,F5会检查出来并将该服务器标识为宕机,从而不将用户的访问请求传送到该台发生故障的服务器上。这样,只要其它的服务器正常,用户的访问就不会受到影响。宕机一旦修复,F5 BIG-IP就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。
③、F5 BIG-IP具有动态Session的会话保持功能。
④、F5 BIG-IP的iRules功能可以做HTTP内容过滤,根据不同的域名、URL,将访问请求传送到不同的服务器。
下面,结合实例,配置F5 BIG-IP LTM v9.x:
①、如图,假设域名blog.zyan.cc被解析到F5的外网/公网虚拟IP:61.1.1.3(vs_squid),该虚拟IP下有一个服务器池(pool_squid),该服务器池下包含两台真实的Squid服务器(192.168.1.11和192.168.1.12)。
②、如果Squid缓存未命中,则会请求F5的内网虚拟IP:192.168.1.3(vs_apache),该虚拟IP下有一个默认服务器池(pool_apache_default),该服务器池下包含两台真实的Apache服务器(192.168.1.21和192.168.1.22),当该虚拟IP匹配iRules规则时,则会访问另外一个服务器池(pool_apache_irules),该服务器池下同样包含两台真实的Apache服务器(192.168.1.23和192.168.1.24)。
③、另外,所有真实服务器的默认网关指向F5的自身内网IP,即192.168.1.2。
④、所有的真实服务器通过SNAT IP地址61.1.1.4访问互联网。
详细配置步骤:
我的技术文章与计算机作品汇总页[原创]
[ 2007-8-14 20:04 | by 张宴 ]
我的技术文章与计算机作品汇总页
张宴(本页网址:http://blog.zyan.cc/tech/)
文章推荐级别:最高 较高 普通
★ 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日