初心易得,始終難守
C'est la vie.© 2002 - 2026
  • 我是誰-Who Am I
  • 我在哪-Where Am I
  • 我是什麼-What Am I
  • 年鑑-YearBook
    • 二零零六年终总结
    • 一吻定情—二零零八年年终总结
    • 突如其来的明天—二零零九年年终总结
    • 人生大起大落得太快——二零一零年年终总结
    • 贰零①①年年终总结-女朋友已经成家了
    • 贰零壹贰年年终总结-奔波的肿瘤
    • 贰零壹叁年年终总结
    • 雪字怎么写-贰零壹肆年年终总结
    • 每个不曾表白的今天,都是对青春的亏欠-贰零壹伍年年终总结
    • 按部就班的IT 人生-貳零貳肆年年終總結
    • 真正的閱讀-貳零貳伍年年終總結
  • 連結
RSS
4 月 21 日, 2006 年

G时代网站 www.gtime.cn 负载均衡集群方案

Ken Tech 0 Comments

为了对得起早上那个BSD fans的热情,把我上次给公司做的负载均衡集群方案给大家参考参考,有的人就很不愿意把自己做的东西写出来,因为知道的人越多,含金量就越少了,我倒是觉得,知道的人越多,才能萌生出更多的ideas,说老实话我不喜欢做SA,我讨厌机房的灰尘和风扇的呜呜声,我只是很喜欢FreeBSD这个纯洁的操作系统,就像一个裸体一样(这话不是我说的)。

G时代网站 www.gtime.cn 负载均衡集群方案

应用背景
伴随着全球企业日益重视竞争和协作的统一,企业开始对系统的高可用性应用提出了越来越高的要求。类unix操作系统以其低廉的价格,稳定的性能以及强大的服务器集群功能在市场中占有越来越大的比例.

方案介绍
服务器集群就是将一组独立的服务器作为单一系统进行管理,以此来实现更高的可靠性。整个系统中每一台服务器都处于相互的监视状态当中,一旦出现某一服务器宕机,或者其他不能正常工作的现象,另外的服务器就可以立即接管其所有服务,使所有用户能够正常工作。服务器集群基本架构如下图所示: (图略)

TOMCAT 服务器使用IP多点传送在集群中的服务器例程间进行一对多的通讯,IP多点传送是一种能够让多服务器向指定IP地址和端口号进行订阅并且监听消息的广播技术(多点传送IP地址范围从224.0.0.0 到239.255.255.255)。在集群中的每个服务器都使用多点传送广播特定的 heartbeat消息,通过监视这些 heartbeat消息,在集群中的服务器例程判断什么时候服务器例程失效。在服务器通讯中使用IP多点传送的一个缺点是他不能保证这些消息被确实接收到了。
上面的图例已经表明了网站的基本架构,前台使用Apache作为负载均衡和缓存,后台使用三台tomcat进行集群,在当前的tomcat版本中,只有all to all的会话复制,所以官方文档只建议做2到4台的集群,下一个发行版本中tomcat会推出适用于大型集群系统的session复制体系。

服务器环境以及软件平台
FreeBSD5.4(http://www.freebsd.org) ,
j2sdk1.4.2(http://www.sun.com)
Apache2.2.0(http://httpd.apache.org)
Tomcat5.0.30(http://tomcat.apache.org)
一共四台服务器,221.5.234.140(192.168.0.1)作为www前台代理用于负载均衡和内部网关用于集群,192.168.0.2,192.168.0.3,192.168.0.4,分别命名为2号服务器,3号服务器,4号服务器,三台主机各启动一个tomcat例程。
首先安装各种软件,均使用默认安装,这里不做赘述,安装完成后的路径为
JAVA JDK:/usr/local/jdk1.4.2
Tomcat:/usr/local/jakarta-tomcat5.0/
Apache:/usr/local/httpd

全部方案分为四个部分:集群,负载均衡,输出压缩,存储服务器

附:网关设置,web访问统计,内网服务器状态监视,服务器代码管理,服务器操作系统管理。

配置过程:
集群部分:
Tomcat:
1.本方案中,原计划使用3个独立IP做集群以便于管理,但是因为分配的IP不在一个子网当中,无法使用多播,所以改用私有IP做内部集群,因为后台的三个tomcat也不对互联网开放服务,前台服务器一共有两张网卡,其中一张使用一个公网IP221.5.234.140,另外一张使用私有IP192.168.0.1,同时开启网关(附后)
2.使用tomcat自带的session复制体系,取消server.xml当中“<Cluster className=”部分的注释,对于集群使用相同的多播地址224.0.0.4。
3.在每个WWW网站应用中的web.xml文件,添加<distributable/>元素。
关闭tomcat的http connector端口,打开tomcat ajp13端口供Apache调用,同时对ajp13端口进行一些细微调节。
4.前台服务器上的apache和后台三台PC机上的tomcat相应端口如下表所示。(表略)
5.在tomcat启动文件startup.sh中设置JAVA_HOME=/usr/local/jdk1.4.2环境变量;启动tomcat

Tomcat范例配置文件如下:(配置文件略)

负载均衡部分:

安装Apache2.2.0,编译时加入ajp代理以及反向代理参数以及负载均衡参数:
./configure –enable-proxy –enable-proxy-ajp –enable-proxy-balancer
本方案中,221.5.234.140上的Apache代理后台的三个tomcat(TC02,TC03,TC04)。
在221.5.234.140上的Apache的配置文件中写入
<Proxy balancer://gtCluster> #定义均衡服务器集群名,下同
BalancerMember ajp://192.168.0.2:8009
BalancerMember ajp://192.168.0.3:8009
BalancerMember ajp://192.168.0.4:8009
</Proxy>
<Location />
ProxyPass balancer://gtCluster/ #代理通过该集群名,下同
</Location>
表示221.5.234.140这台主机的Apache使用ajp13模块代理192.168.0.2,192.168.0.3,192.168.0.4上的三个Tomcat,存储服务器和www前台代理放置于同一主机,所以需要设置虚拟主机。

虚拟主机设置如下:
修改/usr/local/httpd/conf/extra/httpd-vhosts.conf,创建基于域名的虚拟主机
NameVirtualHost *:80 #定义主机类型,主机端口
<VirtualHost *:80>
Servername storage.gtime.cn #定义存储服务器域名
CustomLog logs/storage.gtime.cn_access_log combined
<Directory “/files”> #定义存储服务器根路径
AllowOverride None
Options None
</Directory>
DocumentRoot /files
Alias /awstatsclasses “/usr/local/httpd/cgi-bin/wwwroot/classes/” #web日志统计分析软件用
Alias /awstatscss “/usr/local/httpd/cgi-bin/wwwroot/css/” #web日志统计分析软件用
Alias /awstatsicons “/usr/local/httpd/cgi-bin/wwwroot/icon/” #web日志统计分析软件用
ScriptAlias /awstats/ “/usr/local/httpd/cgi-bin/wwwroot/cgi-bin/” #web日志统计分析软件用
</VirtualHost>

<VirtualHost *:80>
Servername www.gtime.cn #定义WWW前台代理域名
CustomLog logs/www.gtime.cn_access_log combined
<Proxy balancer://gtCluster>
BalancerMember ajp://192.168.0.2:8009
BalancerMember ajp://192.168.0.3:8009
BalancerMember ajp://192.168.0.4:8009
</Proxy>
<Location />
ProxyPass balancer://gtCluster/
</Location>
</VirtualHost>

页面输出压缩部分:
使用Apache的deflate模块进行页面压缩,在编译Apache的时候,加入选项:
–enable-deflate
编译完成之后,在httpd.conf中中加入下列语句:
###############gzip output##################
<IfModule mod_deflate.c>
#如果编译了mod_deflate则调用之
DeflateCompressionLevel 9
#gzip压缩比率,可调整为1到9,数字越大压缩比率越大,服务器负荷越高,客户端PC要求越大。
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-jsp
#只压缩html,txt,xml.jsp文件
</IfModule>
##########################################
压缩效果是很明显的,未压缩之前的www首页是75.96KB,压缩之后只有11.36KB。

存储服务器部分:
目前将存储服务器和www代理服务器放置于同一硬件设备上,存储服务器域名为storage.gtime.cn,后台更新程序亦放置于该服务器,所以存储服务器上运行有一个Tomcat,导致必须使用虚拟主机来区分对www.gtime.cn:80和storage.gtime.cn:80的访问,虚拟主机设置如前文所述。

附:
网关设置
网关NAT选用Freebsd自带的IPFILTER,重新编译操作系统内核,在编译系统内核时加入如下选项:
options IPFILTER #编译加入IPFILTER
options IPFILTER_LOG
options BRIDGE
编译内核并且安装完之后,在系统配置文件中加入如下选项
####rc.conf
gateway_enable=”YES” #启用网关
ipfilter_enable=”YES” #启用ipfilter
ipfilter_flags=””
ipmon_enable=”YES”
ipmon_flags=”-Dsvn”
ipnat_enable=”YES” #启用IPNAT,以便将内网服务映射到外网
设置IPNAT:
建立IPNAT启动文件:
vi /usr/local/etc/rc.d/ipnat.sh
#!/bin/sh
[ -x /sbin/ipnat ] && /sbin/ipnat -CF -f /etc/ipnat.rules && ipf=-y && echo -n ‘ipnat’
建立IPNAT规则:注:fxp0和em0各代表一张网卡
map fxp0 192.168.0.0/24 -> 221.5.234.140/32 #建立192.168.0.0子网
map em0 192.168.0.0/24 -> 221.5.234.140/32
######ftp######将192.168.0.2服务器的21端口映射到221.5.234.140的xxxx端口,以下类似######
rdr fxp0 221.5.234.140/32 port xxxx -> 192.168.0.2 port 21 tcp
rdr em0 221.5.234.140/32 port xxxx -> 192.168.0.2 port 21 tcp
rdr fxp0 221.5.234.140/32 port xxxx -> 192.168.0.3 port 21 tcp
rdr em0 221.5.234.140/32 port xxxx -> 192.168.0.3 port 21 tcp
rdr fxp0 221.5.234.140/32 port xxxx -> 192.168.0.4 port 21 tcp
rdr em0 221.5.234.140/32 port xxxx -> 192.168.0.4 port 21 tcp
######ssh#######将192.168.0.2服务器的22端口映射到221.5.234.140的xxxx端口,以下类似##
rdr fxp0 221.5.234.140/32 port xxxx -> 192.168.0.2 port 22 tcp
rdr em0 221.5.234.140/32 port xxxx -> 192.168.0.2 port 22 tcp
rdr fxp0 221.5.234.140/32 port xxxx -> 192.168.0.3 port 22 tcp
rdr em0 221.5.234.140/32 port xxxx -> 192.168.0.3 port 22 tcp
rdr fxp0 221.5.234.140/32 port xxxx -> 192.168.0.4 port 22 tcp
rdr em0 221.5.234.140/32 port xxxx -> 192.168.0.4 port 22 tcp
#######apache######将192.168.0.2服务器的80端口映射到221.5.234.140的xxxx端口,以下类似##
rdr fxp0 221.5.234.140/32 port xxxx -> 192.168.0.2 port 80 tcp
rdr em0 221.5.234.140/32 port xxxx -> 192.168.0.2 port 80 tcp
rdr fxp0 221.5.234.140/32 port xxxx -> 192.168.0.3 port 80 tcp
rdr em0 221.5.234.140/32 port xxxx -> 192.168.0.3 port 80 tcp
rdr fxp0 221.5.234.140/32 port xxxx -> 192.168.0.4 port 80 tcp
rdr em0 221.5.234.140/32 port xxxx -> 192.168.0.4 port 80 tcp

4 月 21 日, 2006 年

我反映迟钝,没有思考

Ken 隨筆 勇君 3 Comments

一个BSD fans给我发来短消息,用得着么?我想,不是我写得太深奥,就是他太肤浅了,SA岂止那么简单的工作?如果一个SA沦落到看我的文章才能解决问题的话,那么他就是一个不合格的SA,因为我的文章从来都没打算让人看懂过,事实上,大多数SA的瓶颈,不是在理解文档的水平上,而是他们的英文水平……

给老殷发了个邮件,看他五一有时间没有,也许这次能去川西,时间紧迫啊,本来今天回来车上看到一个美女的,但是我不想写,因为我的词汇好像用光了,这是个坏消息,说明我反映迟钝,没有思考。

4 月 20 日, 2006 年

终于下完了《全裸芭蕾II天鹅湖》

Ken 隨筆 13 Comments

历经一个月之久,终于下完了《全裸芭蕾II天鹅湖》,除了女主角比较漂亮之外,其他的天鹅真是不堪入目,男主角很专业,不止是动作上,而且是表情上,都很专业,女主角在表演某些动作的时候有些僵硬,大概是因为全裸与坚硬的水泥地板冲突的原因,我没看过原版的,或者说正宗的天鹅湖,所以我不知道这个芭蕾是不是切合了原作的含义,说实话比欧洲拍的那些要好得多,欧洲的皇宫A片,大多是直奔主题,而且没有这么多的道具,什么羽毛啊皇冠啊,有人认为这是糟蹋了所谓的高雅的芭蕾艺术,其实不见得,哪个更高雅,只是出于人口,何况你完全不能否认王子和公主之间会有性爱吧?

再说一遍,表演很专业,特别是男主角,女主角虽然是临时排练的,也算很用心了,加上那么多场记,灯光,还是费了一番心思。

小疯子最近,她自己说是经期失常,我不知道是不是……昨天晚上给我发了个消息,不知所云,早上我在车上,又发了个,我才明白,原来昨天是4月19日,哎,我都几乎忘记了日子了,好像我时间很多似的。

4 月 19 日, 2006 年

踢,我踢死你

Ken 隨筆 桃桃, 美好 4 Comments

虽然上火了还是吃的肥肠炒饭,我很少怀疑我做的事情的正确性,所以我很少后悔,屈指可数,但是这个问题,值得怀疑,因为它不在我的假设范围内,不在控制范围内的事情是很容易发生变故的,桃桃说她喝醉了,打电话过来,但是我没接,我知道她没喝醉,喝醉了是不会给我打电话的,天气变化无常,时而高温时而低温,美好那天说的什么来着,二四八月乱穿衣,似乎有点道理,上次去万州的确没想起给她打电话,不过我想很长一段时间内我应该都不会去万州了。

我决定重拾无线电,第一个目标,自制窃听器,以前初中做的那个不知道丢那里去了,似乎是老桑的那个杂志上介绍的,距离只有十来米,当然,体积比下面这个将要制作的小得多,全部体积只有一颗纽扣大小(不算天线),但是考虑到,这种体积,对于我的应用来说,几乎没有意义,一个纽扣的大小和一个火柴盒的大小没什么区别,我很想全部用贴片元件来做,那样的话,体积几乎可以缩小到一个拇指大小,问题是,即使我买得到贴片元件,也找不到焊接贴片元件的机器……也许学校实验室有,我什么时候去看看……如果全部用普通的元件做,这个体积,还是可以忽略的,FM发射机电路好像都比较简单,上次看见一个配对的集成电路接收机和发射机电路图,需要集成电路的支持,目前为止我还没找到卖电路的地方……是我没去找,不是没找到,还有更关键的一点,集成电路一般都需要5V或者9V的电源,对于体积来说,简直就是一个恶梦……除非购买非常昂贵的纽扣电池。

踢,我踢死你

4 月 18 日, 2006 年

昨天晚上失眠

Ken 隨筆 13 Comments

江北的公路终于修好,不堵车的863又开始慢悠悠的悠了,汽车速度开得很慢,他们要去吃田螺,我是不喜欢吃这些的,有寄生虫,不干净,虽然现在的田螺都是放几天清水让它把粑粑那些喔出来,我还是觉得不干净,十几块钱的田螺看起来没多少,不行,还不如卖烧烤的多。

你的心是一个无底洞……这种说法,其实我并没说什么特别的词汇,只是表达了一下内心的孱弱,也许在有些人眼睛里面我应该是一个异常坚强的斗士才对,人的心怎么能框得住?束缚自己的,不是别人,正是自己,那天和一个江苏友人探讨了一下相对的自由和绝对的自由,总结出来的是,这个是一个概念问题,具体操作中起作用的是强权,正因为这个目标是永远不可能达到的,所以才会有人为之奋斗,以致奉献出自己的青春和热血,突然想起了一个名字,毒药,这个人在网络上的出现,从始至终,我都认为是对我党的莫大讽刺,虽然现在看起来似乎还没有一个终点,以中高级知识分子,以及我们这些小知识分子的眼光看来,这并没有什么特别,高干子弟享有的特权是很明确的,不过,这样明目张胆的写出来,在各大网络媒体之间传递,就有问题了,普通老百姓的忍耐是有限度的,他们断然不会接受这样的一个事实,想起了林彪选儿媳的时候,如果现在那个毒药站出来选老婆,相信有很多女人都会趋之若骛的。

昨天晚上失眠,恶梦连连,半夜三点醒来睡不着了。

«‹ 297 298 299 300›»

過 客

  1. R2 on 卷進了美商5 月 15 日, 2024 年

    终于回来了,好。

  2. Ken on Mommy最後的樣子11 月 6 日, 2023 年

    也沒有很久吧,最近終於閒下來

  3. R2 on Mommy最後的樣子10 月 26 日, 2023 年

    好久不见

  4. Ken on 天朝Loli控组曲(带歌词,修正版)10 月 12 日, 2023 年

    哈哈哈,祝福你,好人一生平安

  5. liu on 天朝Loli控组曲(带歌词,修正版)10 月 12 日, 2023 年

    hello,我在找天朝lolicon组曲时发现了你的博客,感谢你十四年前做出的贡献,祝一切安好

May 2026
S M T W T F S
 12
3456789
10111213141516
17181920212223
24252627282930
31  
« Apr    

Spam Blocked

103,804 spam blocked by Akismet

↑

© 初心易得,始終難守 2026
Powered by WordPress • Themify WordPress Themes