<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>风叶 &#187; 负载均衡</title>
	<atom:link href="http://blog.myhnet.cn/tag/%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.myhnet.cn</link>
	<description>秋湍泻石髓 风叶聚云根</description>
	<lastBuildDate>Wed, 28 Jul 2010 16:00:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>利用apache的proxy来做负载均衡</title>
		<link>http://blog.myhnet.cn/2009/11/09/make-load-balance-rules-with-mod_proxy-in-apache/</link>
		<comments>http://blog.myhnet.cn/2009/11/09/make-load-balance-rules-with-mod_proxy-in-apache/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 11:11:41 +0000</pubDate>
		<dc:creator>myhnet</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[负载均衡]]></category>
		<category><![CDATA[load balance]]></category>
		<category><![CDATA[mod_proxy]]></category>
		<category><![CDATA[mod_proxy_balancer]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[代理]]></category>
		<category><![CDATA[代理负载均衡]]></category>

		<guid isPermaLink="false">http://blog.myhnet.cn/?p=873</guid>
		<description><![CDATA[虽然很早以前就知道得用apche的mod_proxy可以用来做负载均衡，可由于太懒，一直都没有去做。今天刚好工作上也要做这个，所以就实验了一把。 要使用apache的负载均衡功能，首得得开启下面这几个模块： LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_balancer_module modules/mod_proxy_balancer.soLoadModule proxy_http_module modules/mod_proxy_http.so 其中mod_proxy提供代理服务器功能，mod_proxy_balancer提供负载均衡功能， mod_proxy_http让代理服务器能支持HTTP协议。 然后，要在httpd.conf中加入这么一段配置： ProxyRequests Off&#60;Proxy balancer://mycluster&#62;&#160;&#160; &#160;BalancerMember http://192.168.0.1&#160;&#160; &#160;BalancerMember http://192.168.0.2&#60;/Proxy&#62;ProxyPass /mycluster !ProxyPass / balancer://mycluster&#60;Location /mycluster&#62;&#160;&#160; &#160;SetHandler balancer-manager&#160;&#160; &#160;Order Deny,Allow&#160;&#160; &#160;Deny from all&#160;&#160; &#160;Allow from localhost&#60;/Location&#62; 从上面的 ProxyRequests Off 这条可以看出，实际上负载均衡器就是一个反向代理， 只不过它的代理转发地址不是某台具体的服务器，而是一个 balancer:// 协议： ProxyPass / balancer://mycluster 下面那段是用来监视负载均衡的工作情况的，然后访问 http://localhost/mycluster/ 即可看到负载均衡的工作状况。你也可以利用这个工具将其中某一个终端要暂时从集群中移出，或者临时修改某个终端的参数（如factor等）。 这个地方要特别注意的是下面这行配置： ProxyPass /mycluster ! 如果没有这行配置，当你访问http://localhost/mycluster/也会被转发到终端上去。 改完之后重启服务器，访问你的Apache所在服务器的地址，即可看到负载均衡的效果了。 打开 mycluster的界面，可以看到请求是平均分配的。 [...]]]></description>
			<content:encoded><![CDATA[<p>虽然很早以前就知道得用apche的mod_proxy可以用来做负载均衡，可由于太懒，一直都没有去做。今天刚好工作上也要做这个，所以就实验了一把。</p>
<p>要使用apache的负载均衡功能，首得得开启下面这几个模块：</p>
<div class="hl-surround"><div class="hl-main">LoadModule proxy_module modules/mod_proxy.so<br />LoadModule proxy_balancer_module modules/mod_proxy_balancer.so<br />LoadModule proxy_http_module modules/mod_proxy_http.so</div></div>
<p>其中mod_proxy提供代理服务器功能，mod_proxy_balancer提供负载均衡功能， mod_proxy_http让代理服务器能支持HTTP协议。</p>
<p>然后，要在httpd.conf中加入这么一段配置：</p>
<div class="hl-surround"><div class="hl-main">ProxyRequests Off<br />&lt;Proxy balancer://mycluster&gt;<br />&nbsp;&nbsp; &nbsp;BalancerMember http://192.168.0.1<br />&nbsp;&nbsp; &nbsp;BalancerMember http://192.168.0.2<br />&lt;/Proxy&gt;<br />ProxyPass /mycluster !<br />ProxyPass / balancer://mycluster<br />&lt;Location /mycluster&gt;<br />&nbsp;&nbsp; &nbsp;SetHandler balancer-manager<br />&nbsp;&nbsp; &nbsp;Order Deny,Allow<br />&nbsp;&nbsp; &nbsp;Deny from all<br />&nbsp;&nbsp; &nbsp;Allow from localhost<br />&lt;/Location&gt;</div></div>
<p>从上面的 ProxyRequests Off 这条可以看出，实际上负载均衡器就是一个反向代理， 只不过它的代理转发地址不是某台具体的服务器，而是一个 balancer:// 协议：</p>
<div class="hl-surround"><div class="hl-main">ProxyPass / balancer://mycluster</div></div>
<p>下面那段<Location /mycluster>是用来监视负载均衡的工作情况的，然后访问 http://localhost/mycluster/ 即可看到负载均衡的工作状况。你也可以利用这个工具将其中某一个终端要暂时从集群中移出，或者临时修改某个终端的参数（如factor等）。</p>
<p>这个地方要特别注意的是下面这行配置：</p>
<div class="hl-surround"><div class="hl-main">ProxyPass /mycluster !</div></div>
<p>如果没有这行配置，当你访问http://localhost/mycluster/也会被转发到终端上去。</p>
<p>改完之后重启服务器，访问你的Apache所在服务器的地址，即可看到负载均衡的效果了。 打开 mycluster的界面，可以看到请求是平均分配的。</p>
<p>当然，你也可以像我这个配置这样修改其中的某些参数，来获得最大的负载均衡的功效</p>
<div class="hl-surround"><div class="hl-main">ProxyRequests Off<br />ProxyPass /mycluster !<br />ProxyPass / balancer://mycluster/ stickysession=BALANCEID<br />ProxyPassReverse / http://192.168.0.1/<br />ProxyPassReverse / http://192.168.0.2/<br />&lt;Proxy balancer://mycluster&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;BalancerMember http://192.168.0.1 route=http1 loadfactor=7<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;BalancerMember http://192.168.0.2 route=http2 loadfactor=3<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ProxySet lbmethod=byrequests<br />&lt;/Proxy&gt;<br />&lt;Location /mycluster&gt;<br />&nbsp;&nbsp; &nbsp;SetHandler balancer-manager<br />&nbsp;&nbsp; &nbsp;Order Deny,Allow<br />&nbsp;&nbsp; &nbsp;Deny from all<br />&nbsp;&nbsp; &nbsp;Allow from localhost<br />&lt;/Location&gt;</div></div>
<p>其中，stickysession=BALANCEID设置根据下面的route=http1/2来进行session的绑定。因为很多网站的变量，如登陆信息等，可能是储存在服务器端的内存中的，如果不设置这个变量，用户来访问是还是不段的在不同的终端之间切换，用户就会不停的退出<br />
loadfactor=7这个是设置不同的终端的负载均衡的权重，数值越来，转发的数量就越多。<br />
而ProxySet lbmethod=byrequests是用来设置负载均衡的算法。通常有三种取值：byrequests（按照请求次数均衡，默认值），bytraffic（按照流量均衡），bybusyness（按照繁忙程度均衡）。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.myhnet.cn/2009/11/09/make-load-balance-rules-with-mod_proxy-in-apache/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>apache2 + tomcat6 + jk_mod 实现tomcat负载均衡</title>
		<link>http://blog.myhnet.cn/2008/07/05/how-to-set-up-a-load-balance-cluster-for-tomcat6-with-jk-mod-under-apache/</link>
		<comments>http://blog.myhnet.cn/2008/07/05/how-to-set-up-a-load-balance-cluster-for-tomcat6-with-jk-mod-under-apache/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 09:39:20 +0000</pubDate>
		<dc:creator>myhnet</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[安装配置]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[负载均衡]]></category>
		<category><![CDATA[jk_mod]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[tomcat集群]]></category>

		<guid isPermaLink="false">http://blog.myhnet.cn/2008/07/05/apache2-tomcat6-jk_mod-%e5%ae%9e%e7%8e%b0tomcat%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1/</guid>
		<description><![CDATA[题记：这个以前其实做过好多次了，但可惜的是一直都没有做记录，现在隔了蛮长时间了，好多东西都又不记得了。 环境：CentOS 5.1，无SELinux，无iptables 安装的软件： httpd，httpd-devel jdk-6u6-linux-i586.bin apache-tomcat-6.0.16.tar.gz tomcat-connectors-1.2.26-src.tar.gz（即jk_mod） 一，安装httpd，httpd-devel [root@server ~]# yum install -y httpd httpd-devel 二，安装JDK [root@server ~]# chmod u+x jdk-6u6-linux-i586.bin[root@server ~]# ./jdk-6u6-linux-i586.bin[root@server ~]#export JAVA_HOME=/root/jdk1.6.0_06[root@server ~]#export PATH=$PATH:${JAVA_HOME}/bin 三，安装jk_mod [root@server ~]# tarp -xvf tomcat-connectors-1.2.26-src.tar.gz[root@server ~]# cd tomcat-connectors-1.2.26-src[root@server tomcat-connectors-1.2.26-src]# cd native/[root@server native]# ./configure --with-apxs=/usr/sbin/apxs[root@server native]# make[root@server native]# make install 四，安装配置tomcat 安装tomcat 这个非常简单，我们只要将apache-tomcat-6.0.16.tar.gz解压就可以了，因为我们要做负载均衡，所以我们加上两个tomcat [root@server ~]# tar -xvf [...]]]></description>
			<content:encoded><![CDATA[<p>题记：这个以前其实做过好多次了，但可惜的是一直都没有做记录，现在隔了蛮长时间了，好多东西都又不记得了。</p>
<p>环境：CentOS 5.1，无SELinux，无iptables</p>
<p>安装的软件：</p>
<ul>
<li>httpd，httpd-devel</li>
<li>jdk-6u6-linux-i586.bin</li>
<li>apache-tomcat-6.0.16.tar.gz</li>
<li>tomcat-connectors-1.2.26-src.tar.gz（即jk_mod）</li>
</ul>
<p><span id="more-167"></span></p>
<p><strong>一，安装httpd，httpd-devel</strong></p>
<div class="hl-surround"><div class="hl-main">[root@server ~]# yum install -y httpd httpd-devel</div></div>
<p><strong>二，安装JDK</strong></p>
<div class="hl-surround"><div class="hl-main">[root@server ~]# chmod u+x jdk-6u6-linux-i586.bin<br />[root@server ~]# ./jdk-6u6-linux-i586.bin<br />[root@server ~]#export JAVA_HOME=/root/jdk1.6.0_06<br />[root@server ~]#export PATH=$PATH:${JAVA_HOME}/bin</div></div>
<p><strong>三，安装jk_mod</strong></p>
<div class="hl-surround"><div class="hl-main">[root@server ~]# tarp -xvf tomcat-connectors-1.2.26-src.tar.gz<br />[root@server ~]# cd tomcat-connectors-1.2.26-src<br />[root@server tomcat-connectors-1.2.26-src]# cd native/<br />[root@server native]# ./configure --with-apxs=/usr/sbin/apxs<br />[root@server native]# make<br />[root@server native]# make install</div></div>
<p><strong>四，安装配置tomcat</strong><br />
安装tomcat<br />
这个非常简单，我们只要将apache-tomcat-6.0.16.tar.gz解压就可以了，因为我们要做负载均衡，所以我们加上两个tomcat</p>
<div class="hl-surround"><div class="hl-main">[root@server ~]# tar -xvf apache-tomcat-6.0.16.tar.gz<br />[root@server ~]# mv apache-tomcat-6.0.16 tomcat1<br />[root@server ~]# cp -r tomcat1 tomcat2</div></div>
<p>配置tomcat<br />
这步要配置的东西也不多，主要是server.xml里面的四个参数：Server port, AJP port, http port以及 jvmRoute<br />
/root/tomcat1/的参数：</p>
<div class="hl-surround"><div class="hl-main">Server port:&nbsp; &nbsp;6001<br />AJP port:&nbsp; &nbsp; &nbsp; &nbsp;7001<br />http port:&nbsp; &nbsp; &nbsp; 8001<br />jvmRoute:&nbsp; &nbsp; &nbsp; tomcat1</div></div>
<p>/root/tomcat2/的参数：</p>
<div class="hl-surround"><div class="hl-main">Server port:&nbsp; &nbsp;6002<br />AJP port:&nbsp; &nbsp; &nbsp; &nbsp;7002<br />http port:&nbsp; &nbsp; &nbsp; 8002<br />jvmRoute:&nbsp; &nbsp; &nbsp; tomcat2</div></div>
<p><strong>五，配置apache</strong></p>
<p>创建workers.properties文件</p>
<div class="hl-surround"><div class="hl-main">[root@server conf]# pwd<br />/etc/httpd/conf<br />[root@server conf]# touch workers.properties</div></div>
<p>文件内容如下：</p>
<div class="hl-surround"><div class="hl-main">ps=/<br />#The advanced router LB worker and jk_status<br />worker.list=router,status<br /># Define a worker using ajp13<br />worker.tomcat1.port=7001<br />worker.tomcat1.host=localhost<br />worker.tomcat1.type=ajp13<br />worker.tomcat1.lbfactor=1<br />#Define another worker using ajp13<br />worker.tomcat2.port=7002<br />worker.tomcat2.host=localhost<br />worker.tomcat2.type=ajp13<br />worker.tomcat2.lbfactor=1<br />#Define the LB worker<br />worker.router.type=lb<br />worker.router.balance_workers=tomcat1,tomcat2<br />worker.router.sticky_session=1<br />worker.status.type=status</div></div>
<p>编辑http.conf</p>
<p>找到：</p>
<div class="hl-surround"><div class="hl-main">LoadModule version_module modules/mod_version.so</div></div>
<p>在下面添加：</p>
<div class="hl-surround"><div class="hl-main">LoadModule jk_module modules/mod_jk.so<br /><br />JkWorkersFile conf/workers.properties</div></div>
<p>找到：</p>
<div class="hl-surround"><div class="hl-main">DocumentRoot &quot;/var/www/html&quot;</div></div>
<p>在下面添加：</p>
<div class="hl-surround"><div class="hl-main">JkMount /* router<br />JkLogFile&nbsp; &nbsp; &nbsp;/var/log/httpd/mod_jk.log<br />JkLogLevel&nbsp; &nbsp; debug<br />JkLogStampFormat &quot;[%a %b %d %U %H:%M:%S %w %R %Y] &quot;</div></div>
<p>六，启动所有程序</p>
<div class="hl-surround"><div class="hl-main">[root@server ~]# /etc/init.d/httpd start<br />[root@server ~]# /root/tomcat1/bin/startup.sh<br />[root@server ~]# /root/tomcat2/bin/startup.sh</div></div>
<p>到这里，我们输入http://localhost<br />
就已经可以看到tomcat的页面了，loadbalance已经配置成功了<br />
大家可以做些实验测试下，我就不再继续了</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.myhnet.cn/2008/07/05/how-to-set-up-a-load-balance-cluster-for-tomcat6-with-jk-mod-under-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
