灌溉梦想,记录脚步

Apache做负载均衡

一般来说,负载均衡就是将客户端的请求分流给后端的各个真实服务器,达到负载均衡的目的。还有一种方式是用两台服务器,一台作为主服务器(Master),另一台作为热备份(Hot Standby),请求全部分给主服务器,在主服务器当机时,立即切换到备份服务器,以提高系统的整体可靠性。

负载均衡的设置

Apache可以应对上面这两种需求。先来讨论一下如何做负载均衡。首先需要启用Apache的几个模块:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

mod_proxy提供代理服务器功能,mod_proxy_balancer提供负载均衡功能, mod_proxy_http让代理服务器能支持HTTP协议。如果把mod_proxy_http换成其他协议模块(如mod_proxy_ftp),或许能支持其他协议的负载均衡,有兴趣的朋友可以自己尝试一下。

然后要添加以下配置:

ProxyRequests Off
<Proxy balancer://mycluster>
    BalancerMember http://node-a.myserver.com:8080
    BalancerMember http://node-b.myserver.com:8080
</Proxy>
ProxyPass / balancer://mycluster

# 警告:以下这段配置仅用于调试,绝不要添加到生产环境中!!!
<Location /balancer-manager>
    SetHandler balancer-manager
    order Deny,Allow
    Deny from all
    Allow from localhost
</Location>

从上面的 ProxyRequests Off 这条可以看出,实际上负载均衡器就是一个反向代理,只不过它的代理转发地址不是某台具体的服务器,而是一个 balancer:// 协议:

ProxyPass / balancer://mycluster

协议地址可以随便定义。然后,在<Proxy>段中设置该balancer协议的内容即可。 BalancerMember指令可以添加负载均衡组中的真实服务器地址。

下面那段<Location /balancer-manager>是用来监视负载均衡的工作情况的,调试时可以加上(生产环境中禁止使用!),然后访问 http://localhost/balancer-manager/ 即可看到负载均衡的工作状况。

OK,改完之后重启服务器,访问你的Apache所在服务器的地址,即可看到负载均衡的效果了。打开 balancer-manager 的界面,可以看到请求是平均分配的。

如果不想平均分配怎么办?给 BalancerMember 加上 loadfactor 参数即可,取值范围为1-100。比如你有三台服务器,负载分配比例为 7:2:1,只需这样设置:

ProxyRequests Off
<Proxy balancer://mycluster>
    BalancerMember http://node-a.myserver.com:8080 loadfactor=7
    BalancerMember http://node-b.myserver.com:8080 loadfactor=2
    BalancerMember http://node-c.myserver.com:8080 loadfactor=1
</Proxy>
ProxyPass / balancer://mycluster

默认情况下,负载均衡会尽量让各个服务器接受的请求次数满足预设的比例。如果要改变算法,可以使用 lbmethod 属性。如:

ProxyRequests Off
<Proxy balancer://mycluster>
    BalancerMember http://node-a.myserver.com:8080 loadfactor=7
    BalancerMember http://node-b.myserver.com:8080 loadfactor=2
    BalancerMember http://node-c.myserver.com:8080 loadfactor=1
</Proxy>
ProxyPass / balancer://mycluster
ProxySet lbmethod=bytraffic

lbmethod可能的取值有:

lbmethod=byrequests 按照请求次数均衡(默认)
lbmethod=bytraffic 按照流量均衡
lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)

各种算法的原理请参见Apache的文档

热备份(Hot Standby)

热备份的实现很简单,只需添加 status=+H 属性,就可以把某台服务器指定为备份服务器:

ProxyRequests Off
<Proxy balancer://mycluster>
    BalancerMember http://node-a.myserver.com:8080
    BalancerMember http://node-b.myserver.com:8080 status=+H
</Proxy>
ProxyPass / balancer://mycluster

从 balancer-manager 界面中可以看到,请求总是流向 node-a ,一旦node-a挂掉, Apache会检测到错误并把请求分流给 node-b。Apache会每隔几分钟检测一下 node-a 的状况,如果node-a恢复,就继续使用node-a。

vShpere Client在windows 7 RTM和2008下无法连接esx主机解决办法

 在win7下和2008下打开client后连接esx主机会出现2个错误提示,
  大概是clients.xml初始化失败,某键值对应错误。
  然后就连接失败了,开始以为是CC的esx主机安装有问题,后来找了找,借助了强大google工具,终于找到解决办法.解决办法如下:

  1.从正常的windows2003或者xp主机的c:\windows\microsoft.net\framework\v2.050727文件夹中找到system.dll文件,然后拷贝出来备用.

  2.将这个system.dll文件拷贝到vmware的vshere client文件夹下的laucher文件夹下,我这里是默认路径是C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Launcher

  3.打开该文件夹中的vpxclient.exe.config文件,用记事本打开,然后插入如下内容(插入到倒数第二行)
  <runtime>
  <developmentMode developerInstallation=”true”/>
  </runtime>

  4.创建一个vshpere.bat文件,随便放什么地方都可以,内容如下:

  SET DEVPATH=C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Launcher
  ”C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\VpxClient.exe”

  如果你们安装到其他目录了,请自行更改为正确的路径

  5.然后我们运行这个bat文件
  单击忽略即可正常打开

昙花的秘密

  昙花的秘密

  总是
  要在凋谢后的清晨
  你才会走过
  才会发现 昨夜
  就在你的窗外
  我曾经是
  怎样美丽又怎样寂寞的

  一朵
  我爱 也只有我
  不知道
  你错过的昨夜
  曾有过 怎么皎洁的月
   –席慕容–1981-11-15
  ———————————忧伤的分割线——————————–
  恨不相逢未谢时。
  这该是怎样的一份缺憾,又该是怎样的一份怨恨。
  你,曾是这纯情的女孩。倚在家中的门框上,眼望着日夜思念的心上人,打门前经过。而后又消失,却没有谁来开口。日子,一天天的过去,青春的好时光,也就这样一闪而过。
  数年后的一个黄昏,那个被思念的少年,不期而至。你们坐在院子的中央,桔黄的烛光照亮了数年后两张平静的脸。你们从天气、旧时的伙伴,一直谈到往日里的许多的好时光。黄昏里的你,白发已开始爬满了头。而你也在那不再年少的额头上,也读到了,已逝岁月里的风尘,和那缓缓的语调里的无法言说的淡淡的哀伤。
  你从言谈中得知:这个男人,在年轻的时候,去过世界上好多的地方,爱过许多的女人,流过许多的相思泪。直到今天,他才决意:不再流浪。
  一定是别一道闪电击中了。你突然垂下了头,你的目光从他的脸上滑下来。滑到了你的腕上–那是一只圆圆大大的镯子。在暮色中,闪着微光。
  你落泪了。为了掩饰你的辛酸。你转过身去为他泡了另一杯茶,接着,你缓缓地转过身来。讲起一个故事,一个有关昙花的故事。在这个故事里有怎样皎洁的月光。以及那朵转瞬即谢的昙花,曾经是怎样的美丽,又是怎样的寂寞。
  而这朵昙花,曾在某一个夜晚。怎样地,盛开在一个少年的窗下。

我们守护着

我迷失在遥远的沙漠
这里,我只记得
你离去的方向
在最黑暗的角落
你一如动人的诗歌

我把爱隐藏在最后的沙湖中
迸发的力量在涌动着
一切不能控制
那草坪早已失去它最初的光泽
邮筒里居然放不下一点点思念
这里停留的
可怜的爱情
我们一直在诉说

灵魂还是一样的饥渴
没有形状
却有你留下的颜色

这是一个纯真的世界
我们用不同的方式守护着

Access the ESXi Service Console

  Here is a brief write-up on how to access the Service Console of VMware ESXi. As a disclaimer, this should only be done under the direct supervision of a VMware Support Engineer.
  1.From the ESXi console summary screen hit ALT-F1.
  2.Enter the word “unsupported” (without quotes).
  3.Enter in the root password for your system.
  4.Be careful
  Now edit the inetd.conf file to enable remote SSH into this console;
  1.Edit /etc/inetd.conf (vi /etc/inetd.conf).
  2.Remove the # sign in front of the SSH line.
  3.Kill and restart the inetd process.
  1.) ps -ef |grep inetd
  2.) kill -HUP   # pid is the Process ID, the first number displayed from ps -ef
  4.SSH into the IP of your ESXi server, using your root login/password.

解决Linux下Firefox Flash文字乱码或不能显示的问题

在Linux下用Firefox浏览有Flash的网页时,经常碰到有些文字不能正常显示,有些还可能显示乱码,比如Google 的在线音乐播放音乐时,完全显示不了文字。

解决方法很简单,操作如下:
修改/etc/fonts/conf.d/49-sansserif.conf







sans-serif


serif


monospace


sans-serif


将上面的红色的内容改为:

sans

保存一下,在firefox里刷新一下,问题就解决了。
对Fedora和Ubuntu 都适用。