首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > Apache >

Apache+tomcat负载均衡的入门配备

2012-07-18 
Apache+tomcat负载均衡的入门配置这份文档只是一个初步的配置负载均衡的文档,没有涉及过多的性能优化的东

Apache+tomcat负载均衡的入门配置

这份文档只是一个初步的配置负载均衡的文档,没有涉及过多的性能优化的东西。

所以也就不多言了,直接切入主题。

一、准备工作

安装JDK并配置环境变量。这里要求至少1.5以上版本。

安装apache2.2。我的安装目录为:D:\Apache2.2

安装tomcat6。为了端口不起冲突,建议直接解压。我这里只使用了两台tomcat作为集群服务器。其路径分别为D:\apache-tomcat-6.0.20_v1、D:\apache-tomcat-6.0.20_v2

二、配置Apache

这里说明一下,我在网上找到的一些资料都在介绍mod_JK的方式配置负载均衡。但是从apache2.X版本之后其自身已经集成了mod_jk可以直接使用mod_proxy的方式进行负载均衡的配置,所以下面介绍的也即是这种方式。

在D:\Apache2.2\conf目录下找到httpd.conf文件,并进行修改。修改步骤:

1、打开相关的模块。

LoadModule?proxy_module?modules/mod_proxy.so

LoadModule?proxy_ajp_module?modules/mod_proxy_ajp.so

LoadModule?proxy_balancer_module?modules/mod_proxy_balancer.so

LoadModule?proxy_connect_module?modules/mod_proxy_connect.so

LoadModule?proxy_ftp_module?modules/mod_proxy_ftp.so

LoadModule?proxy_http_module?modules/mod_proxy_http.so

LoadModule?rewrite_module?modules/mod_rewrite.so

在配置文件里找到上述模块,将前边的“#”去掉.

2、配置tomcat集群。

在该配置文件的最后加上:

ProxyRequests?Off

ProxyPass?/?balancer://cluster/

<proxy?balancer://cluster>?

BalancerMember?ajp://localhost:8009?loadfactor=1?route=jvm1

BalancerMember?ajp://localhost:9009?loadfactor=1?route=jvm2

</proxy>

注意红色部分,因为这里我只使用了一台物理机器作为集群的配置,所以就直接使用了localhost指向本地的集群服务器,你也可以使用127.0.0.1。如果这里你使用多台机器一起配合的话,只需要将localhost修改为其他机器的IP地址就行。

另外需要注意的就是上面配置的端口,为什么要这么配置?将在后边结合tomcat一起做一个详细的说明。

三、配置tomcat

在D:\apache-tomcat-*\conf找到server.xml,然后着手修改。

1、配置server的关闭。

因为我是在同一台机器上配置两台tomcat,所以为了使tomcat关闭不出现端口被占用的情况,需要修改关闭端口。

<Server?port="8005"?shutdown="SHUTDOWN">

修改为:

<Server?port="XXXX"?shutdown="SHUTDOWN">

注意,我这里用了两台tomcat,所以第一个tomcat我就选择了默认的端口8005,第二个tomcat我将此端口修改为了9005。总之,如果你有多台tomcat服务器群,都需要将它们的端口修改为互不冲突的端口号。

2、配置Connector

这里又两个地方需要修改,第一个就是tomcat监听的http端口,另一个就是tomcat监听的AJP端口:

<Connector?port="8080"?protocol="HTTP/1.1"?

???????????????connectionTimeout="20000"?

???????????????redirectPort="8443"?/>

<Connector?port="8009"?protocol="AJP/1.3"?redirectPort="8443"?/>

注意,蓝色部分是tomcat的http端口,因为我在同一台机器上配置了两个tomcat,为了使它们的http端口不冲突,我将第一个tomcat使用默认的端口即8080,第二个tomcat的http端口我修改为了8081。同样的道理,如果你还有其他的tomcat,记得将它们的http端口修改为互不冲突的端口号即可。

另一个需要修改的端口,红色部分的端口,这里是apache和tomcat链接的关键,前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡的作用。现在回过头去看看apache的httpd.conf配置,

<proxy?balancer://cluster>?

BalancerMember?ajp://localhost:8009?loadfactor=1?route=jvm1

BalancerMember?ajp://localhost:9009?loadfactor=1?route=jvm2

</proxy>

那么,另一个tomcat的AJP端口你知道要配置成什么了吗?对了,就是9009。

3、配置Engine

<Engine?name="Catalina"?defaultHost="localhost">,这个是原来的配置,现在将这个配置修改为:<Engine?name="Catalina"?defaultHost="localhost"?jvmRoute="jvm1">,然后另一个tomcat修改为<Engine?name="Catalina"?defaultHost="localhost"?jvmRoute="jvm2">。

现在再回过头去看看apache的配置:

<proxy?balancer://cluster>?

BalancerMember?ajp://localhost:8009?loadfactor=1?route=jvm1

BalancerMember?ajp://localhost:9009?loadfactor=1?route=jvm2

</proxy>

这里再说明一点,loadfactor相当于一种加权策略,loadfactor的值越大,对应的tomcat服务器分到的请求就越多。像上面的这种设置就说明两台tomcat将平均负载。

4、配置Session的复制

Tomcat里的?<Cluster?className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>这个配置默认是被注释掉的,如果想要开启取消注释就OK,这也是tomcat默认的会话同步和复制配置。一般的情况下,使用默认配置就可以。

关于session的复制我还没来得及验证过,有需要的同学可以自己去网上找一下相关资料。

热点排行