在现有网络结构之上,负载均衡提供了一种廉价有效的方法(1)-扩展服务器带宽和增加吞吐量,(2)-加强网络数据处理能力,(3)-提高网络的灵活性和可用性。集群系统(Cluster)主要解决下面几个问题:
1.高可靠性:利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。
2.高性能计算:即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。
3.负载 均衡 :即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
<!-- Define a non-SSL Coyote HTTP/1.1
Connector on port 8080 -->
<Connector port="8080"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
redirectPort="8443"
acceptCount="100"
debug="0"
connectionTimeout="20000"
disableUploadTimeout="true" />
<!-- Define a Coyote/JK2 AJP 1.3
Connector on port 8009 -->
<Connector port="8009"
enableLookups="false"
redirectPort="8443" debug="0"
protocol="AJP/1.3" />
第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。
第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。
Web客户访问Tomcat服务器上JSP组件的两种方式如图所示。
上图反映了Web客户访问Tomcat服务器上的JSP组件的两种方式
在图中,Web客户1直接访问Tomcat服务器上的JSP组件,他访问的URL为http://localhost:8080 /index.jsp。Web客户2通过HTTP服务器访问Tomcat服务器上的JSP组件。假定HTTP服务器使用的HTTP端口为默认的80端口, 那么Web客户2访问的URL为http://localhost:80/index.jsp 或者 http://localhost/index.jsp。
下面,介绍Tomcat与HTTP服务器之间是如何通信的。
假定在预先配置好的URL映射信息中,所有"/*.jsp"形式的URL都由Tomcat服务器来处理,那么在图22-1的例子中,JK插件将把客户请 求转发给Tomcat服务器,Tomcat服务器于是运行index.jsp,然后把响应结果传给HTTP服务器,HTTP服务器再把响应结果传给Web 客户2。
对于不同的HTTP服务器,Tomcat提供了不同的JK插件的实现模块。本章将用到以下JK插件:
与Windows下的Apache HTTP服务器集成:mod_jk_2.0.46.dll
与Linux(RedHat)下的Apache HTTP服务器集成:mod_jk.so-ap2.0.46-rh72..46-rh72
eth0 Link encap:Ethernet HWaddr 00:0C:29:6E:BA:CE
inet addr:192.168.40.128 Bcast:192.168.40.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe6e:bace/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1907 errors:0 dropped:0 overruns:0 frame:0
TX packets:1322 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:182415 (178.1 KiB) TX bytes:198995 (194.3 KiB)
Interrupt:169 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:34 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3978 (3.8 KiB) TX bytes:3978 (3.8 KiB)
mount /dev/cdrom /mnt
这样光盘的内容就被挂载到/mnt的设备上,现在可以通过/mnt访问光盘上的内容了
2)在光盘上安装vsftp,并且启动vsftp
rpm -ivh vsftpd*
3)修改启动方式,改为系统启动时,自动启动
chkconfig vsftpd on
也可以查看启动方式
chkconfig --list |grep vsftpd
只要在第2--5为on就能随机启动
4)启动ftp
service vsftpd start
主配置文件有三个:
/etc/vsftpd/vsftpd.conf
/etc/vsftpd.ftpusers
/etc/vsftpd.user_list
修改前建议使用“cp”命令备份这三个文件,修改完成后需要重启vsftpd服务才能使设置生效。
匿名用户访问配置
¥启动后FTP服务器就可以登陆了
匿名用户在text模式下,要用用户名ftp,密码也是ftp,来进行登陆;如果是用FTP工具来匿名登陆的话,用户名和密码都为:anonymous。默认情况下匿名用户可以访问和下载,但不能进行上传、删除、新建目录、执行文件等操作!
本地用户可以登陆,并可以离开自家目录至有权访问的其他目录,并在权限允许的情况下进行上传和下载,写在文件/etc/vsftpd.ftpusers中的本地用户禁止登录。
¥允许匿名用户上传文件
需要修改/etc/vsftpd/vsftpd.conf文件,把以下两项前的“#”去掉。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
重启vsftpd服务。
¥仅允许匿名用户访问
指需要限制本地账号访问,修改/etc/vsftpd/vsftpd.conf文件,把以下两项前的“#”去掉。
local_enable=YES
write_enable=YES
重启vsftpd服务。
¥设置欢迎信息
修改/etc/vsftpd/vsftpd.conf文件
ftpd_banner=*****
*****即为设置的欢迎信息。
重启vsftpd服务。
¥设置最大传输率
修改/etc/vsftpd/vsftpd.conf文件
设置匿名用户的最大传输速率为20Kbps,应添加以下语句:
anon_max_rate=20000
设置本地账号的最大传输速率为1Mbps,应添加以下语句:
local_max_rate=1000000
¥设置服务器最大并发数和用户最大线程数
修改/etc/vsftpd/vsftpd.conf文件
设置服务器最大并发数为99,应添加以下语句:
max_clients=99
设置用户同一时段的最大连接数,应添加以下语句:
max_per_ip=5
¥禁止某些IP段的主机匿名访问服务器
修改vsftpd.conf文件,确认有如下语句:
tcp_wrappers=YES
修改/etc/hosts.allow文件,增加1行命令:
vsftpd:192.168.1.1:DENY
表示限制IP为192.168.1.1的主机访问FTP服务器。
重启vsftpd服务。
¥用ASCII方法传送数据
修改/etc/vsftpd/vsftpd.conf文件,
ascii_upload_enable=YES
ascii_download_enable=YES
重启vsftpd服务。
¥设置数据传输中断间隔时间
修改/etc/vsftpd/vsftpd.conf文件,
idle_session_timeout=600
表明空闲会话时间为600秒。
data_connection_timeout=120
表明数据连接超时时间为120秒。
重启vsftpd服务。
本地用户访问配置
¥使用用户列表进行访问控制
修改/etc/vsftpd/vsftpd.conf文件,按以下语句设置:
userlist_enable=NO
表明vsftpd.ftpuser文件中的用户将被禁止访问FTP服务器。
userlist_enable=YES
userlist_deny=NO
表明仅允许vsftpd.user_list文件中的用户访问FTP服务器。
userlist_enable=YES
userlist_deny=YES
表明vsftpd.ftpuser和vsftpd.user_list文件中的用户都不能访问FTP服务器。
¥限制用户目录的访问权限
修改/etc/vsftpd/vsftpd.conf文件
chroot_local_user=YES
表明用户登录后不能访问自己目录以外的其它目录或文件。
¥修改默认端口
FTP服务器默认的端口是21,如需要修改端口,请修改/etc/vsftpd/vsftpd.conf文件,以下语句:
listen_port=4444
表明FTP服务器的端口号为4444,应该尽量大于4000
对于Linux安装JDK,需要进行以下几个步骤:
1、从sun公司网站下载JDK的Linux安装版本
2、通过ftp将该文件上传到Linux
如果ftp不能上传,请参考上一节,我是采用的LeapFTP上传工具。
3、修改该文件的运行权限
如果是root登陆,这一步可以忽略。
扫盲:Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。
详细参见: http://www.linuxidc.com/Linux/2012-06/61857.htm
4 、查询安装文件是什么类型的文件,如果是 .bin 的文件表示为可以直接运行的文件,如果是 rpm 文件表示需要通过 rpm 来进行安装的文件。通过 .bin 的文件安装很简单,直接输入 ./jdk 就可以了,注意:如果直接输入文件名没有效果,因为该文件名并没有在 path 变量中,所以需要告诉其路径进入安装目录#cd /var/ftp/pub#cp jdk-1.7.0_21 -linux-i586.rpm /usr/local#cd /usr/local给所有用户添加可执行的权限(如果直接就是rpm文件,这步可省)#chmod +x jdk-1.7.0_21 -linux-i586.rpm.bin#./ jdk-1.7.0_21 -linux-i586.rpm.bin此时会生成文件 jdk-1.7.0_21 -linux-i586.rpm,同样给所有用户添加可执行的权限#chmod +x jdk-1.7.0_21 -linux-i586.rpm安装程序#rpm -ivh jdk-1.7.0_21 -linux-i586.rpm出现安装协议等,按接受即可。2.设置环境变量。#vi /etc/profile在最后面加入#set java environmentJAVA_HOME=/usr/local/java/jdk-1.7.0_21CLASSPATH=.:$JAVA_HOME/lib.tools.jarPATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME CLASSPATH PATH保存退出。source /etc/profile使profile生效要使JDK在所有的用户中使用,可以这样:vi /etc/profile.d/java.sh在新的java.sh中输入以下内容:#set java environmentJAVA_HOME=/usr/local/java/jdk-1.7.0_21CLASSPATH=.:$JAVA_HOME/lib/tools.jarPATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME CLASSPATH PATH保存退出,然后给java.sh分配权限:chmod 755 /etc/profile.d/java.sh3.在终端使用echo命令检查环境变量设置情况。#echo $JAVA_HOME#echo $CLASSPATH#echo $PATH4.检查JDK是否安装成功。#java -version如果看到JVM版本及相关信息,即安装成功!一、Linux下tomcat安装和配置1、从www.apache.org网站中下载tomcat的Linux版本tar.gz (pgp, md5)
2、将该文件通过ftp上传到Linux中
如果不会上传,请参考第二节
对于tomcat而言,文件很有可能是apachxxx.tar.gz的文件,对于该文件而言需要进行两次解压,首先通过gzip解压,使用gzip –d apachexx.tar.gz[-d(decompress)表示解压],解压之后会得到一个apachxx.tar的文件,之后使用tar进行tar文件的解压。使用tar –xvf apachxx.tar[-x(extract)表示解压缩,-v(verbose)表示显示解压缩到全过程,-f(file)表示以文件的形式进行解压缩]。
解压缩完成之后,将该文件夹拷贝到相应的目录中,建议将其拷贝到/usr/local/tomcat中去,使用mv apachexx.tar/usr/local/tomcat
如此在完成拷贝的同时又完成了相应的命名
3、设置环境变量。
#vi /etc/profile在最后面加入export JAVA_HOME=/usr/java/jdk1.7.0_21export JRE_HOME=/usr/java/jdk1.7.0_21/jreexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHexport CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib如果在上一节中配置jdk环境变量,上面几行可以省略CATALINA_BASE=/usr/ local/tomcatCATALINA_HOME=/usr/ local/tomcatexport CATALINA_BASE CATALINA_HOMETOMCAT_HOME=/usr/local/tomcatexport TOMCAT_HOME保存退出。source /etc/profile使profile生效扫盲:何为vi?
vi是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi。vi命令繁多但是如果使用灵活之后将会大大提高效率。4、通过使用catalina.sh可以直接开启tomcat的服务,开启之后可以通过ps – ef | grep tomcat查看tomcat的运行情况,但是此时tomcat在别的机器上不能访问,因为防火墙的原因。可以通过wget http://localhost:8080来测试该网站是否可以在本机访问。如果可以访问但是其他机器不能访问,就说明是防火墙的问题,可以通过步骤5来完成防火墙的配置。
5、如果打开了防火墙有可能是防火墙将相应的端口关闭了,可以通过修改/etc/sysconfig/iptables文件来修改防火墙的访问控制,可以增加如下一条记录
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
#User Defination----------------start----------------------
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
#User Defination-----------------end-----------------------
以上打开了相应的80和8080端口,可以根据需求添加不同的规则来打开相应的端口。之后通过service iptables restart重新启动一下防火墙就可以了。可以通过iptables –L –n |more来查询防火墙的配置。
如果不想配置,可以直接使用命令把防火墙关掉:
(1)默认开启,重启后生效:chkconfig iptables on
默认关闭:chkconfig iptables off
(2) 即时生效,重启后失效:
开启:service iptables start
关闭:service iptables stop
(3)/etc/init.d/iptables status 会得到一系列防火墙状态信息,说明防火墙开着。
/etc/rc.d/init.d/iptables stop 关闭防火墙
6、配置了其他机器可以访问之后,需要配置开机自动启动,如下几种方案,首先可以修改/etc/profile,在其中添加上启动的命令!但是这样设置最大的问题是,该文件需要登录之后才能运行,所以在重启并没有登录的情况下,该文件不会被执行;另外一种方式就是修改相应的/etc/rc.local,在该文件中加入相应的配置信息,rc.local表示在机器启动之后会自动执行的文件。在该文件加入以下一些代码
##添加java_home
JAVA_HOME=$JAVA_HOME
export JAVA_HOME
##自动启动tomcat
usr/tomcat/bin/startup.sh,如果配置了环境变量,直接startup.sh或catalina.sh即可
一、Linux下Apache安装和配置(包含GCC的安装)由于有了前面几节的安装经验,这里的安装步骤的具体说明,我就从简了。1、下载apache何为apache?Apache HTTP Server (简称 Apache )是 一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中2、安装apache:解压Apache压缩包 httpd-2.2.17.tar.gz 到/usr/local,解压: -zxvf httpd-2.2.17.tar.gz进入安装目录 :cd /usr/local/apache/httpd-2.2.17进行安装配置: ./configure --prefix=/usr/local/apache --enable-module=somake -------出错啦?缺少GCC,参考下文make install常规解压命令?.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName参见:http://www.cnblogs.com/eoiioe/archive/2008/09/20/1294681.html3、测试安装是否正常启动Apache:/usr/local/apache/bin/apachectl start查看进程:2947 ? Ss 0:00 /usr/local/apache/bin/httpd -k start2948 ? S 0:00 \_ /usr/local/apache/bin/httpd -k start2949 ? S 0:00 \_ /usr/local/apache/bin/httpd -k start2950 ? S 0:00 \_ /usr/local/apache/bin/httpd -k start2951 ? S 0:00 \_ /usr/local/apache/bin/httpd -k start2952 ? S 0:00 \_ /usr/local/apache/bin/httpd -k start见到上述进程,说明启动成功!ps命令知多少?大家在windows下都用过任务管理器吧,这个就相当于命令行式的任务管理器参见:http://blog.csdn.net/JsuFcz/article/details/5044932测试一下在远端浏览器输入服务器IP,如http://192.168.40.128/It works!
提示it works! 说明apache已经安装成功如果安装过程中,报了缺少GCC的错误,那么请先安装GCC何为GCC?GCC是大多数类Unix操作系统(如Linux、BSD、Mac OS X等)的标准的编译器,GCC同样适用于微软的Windows。步骤如下:1、插入第一张安装盘,首先在/mnt下创建cdrom文件夹,然后挂载安装盘:mount /dev/cdrom /mnt/cdrom;
2、进入/mnt/cdrom/Server,按顺序安装以下包:
(1)[root@localhost Server]# find -iname kernel-headers*
./kernel-headers-2.6.18-128.el5.i386.rpm
[root@localhost Server]# rpm -ivh ./kernel-headers-2.6.18-128.el5.i386.rpm
warning: ./kernel-headers-2.6.18-128.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:kernel-headers ########################################### [100%]
挂上第二张光盘
(2)[root@localhost Server]# find -iname glibc-headers*
./glibc-headers-2.5-34.i386.rpm
[root@localhost Server]# rpm -ivh ./glibc-headers-2.5-34.i386.rpm
warning: ./glibc-headers-2.5-34.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:glibc-headers ########################################### [100%]
(3)[root@localhost Server]# find -iname glibc-devel*
./glibc-devel-2.5-34.i386.rpm
[root@localhost Server]# rpm -ivh ./glibc-devel-2.5-34.i386.rpm
warning: ./glibc-devel-2.5-34.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:glibc-devel ########################################### [100%]
(4)[root@localhost Server]# find -iname libgomp*
./libgomp-4.3.2-7.el5.i386.rpm
[root@localhost Server]# rpm -ivh ./libgomp-4.3.2-7.el5.i386.rpm
warning: ./libgomp-4.3.2-7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:libgomp ########################################### [100%]
(5)[root@localhost Server]# rpm -ivh gcc-4.1.2-44.el5.i386.rpm
warning: gcc-4.1.2-44.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:gcc ########################################### [100%]
(6)[root@localhost Server]# find -iname libstdc++-devel*
./libstdc++-devel-4.1.2-44.el5.i386.rpm
[root@localhost Server]# rpm -ivh ./libstdc++-devel-4.1.2-44.el5.i386.rpm
warning: ./libstdc++-devel-4.1.2-44.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:libstdc++-devel ########################################### [100%]
(7)[root@localhost Server]# find -iname gcc-c++*
./gcc-c++-4.1.2-44.el5.i386.rpm
[root@localhost Server]# rpm -ivh ./gcc-c++-4.1.2-44.el5.i386.rpm
warning: ./gcc-c++-4.1.2-44.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:gcc-c++ ########################################### [100%]
3、最后进入/mnt,输入rpm –qa gcc*,如过成功安装了gcc,可以查出以下内容:
gcc-c++-4.1.2-44.el5
gcc-4.1.2-44.el5
可能还会在装这些包之间装上这三个包:
binutils-2.13.90.0.18-9.i386.rpm
cpp-3.2.2-5.i386.rpm
为什么需要那么多rpm文件?在我们安装某一个rpm包的时候,系统有可能提示某一个库文件或者rpm的支持,当想在安装需要该rpm包倚赖的这个库文件或者rpm包时,该库文件或者rpm包又依赖另外的文件或rpm包,导致安装很难快速解决包之间的以来关系达到安装需要的组件的目的。 RedHat提供的解决方案,安装依赖关系库,就可以解决此问题,该文件可以用find -name rpmdb* 在rpm包所在文件夹中找到,然后运行rpm -ivh --aid abc.rpm,abc.rpm为需要安装的包即可。当然复杂的时候还需要手动解决少数包依赖关系,简单的情况下,可以一次性解决所有以来关系。一、Jkconnector安装和配置,并整合tomcat集群1、下载我选择的是jakarta-tomcat-connectors-1.2.15-src.tar.gz何为Jkconnector?
Tomcat提供了专门的JK插件来负责Tomcat和HTTP服务器的通信。把JK插件安置在对方的HTTP服务器上。当HTTP服务器接收到客 户请求时,它会通过JK插件来过滤URL,JK插件根据预先配置好的URL映射信息,决定是否要把客户请求转发给Tomcat服务器处理。2、安装(1)将jakarta-tomcat-connectors-1.2.15-src.tar.gz包解压到/usr/local目录下命令:(2)解压jakarta-tomcat-connectors-1.2.15-src.tar命令:tar -zxvf /usr/local/jakarta-tomcat-connectors-1.2.15-src.tar(3)进入jakarta-tomcat-connectors-1.2.15-src/jk/native目录命令:cd /usr/local/jakarta-tomcat-connectors-1.2.15-src/jk/native(4)执行buildconf.sh 脚本刷新配置文件(5)配置apxs连接命令: /usr/local/jakarta-tomcat-connectors-1.2.15-src/jk/native/configure -with-apxs=/usr/local/apache/bin/apxs(6)编译配置文件命令:make(7)生成mod_jk.so模块命令:make install(8)将mod.jk.so模块拷贝到apache服务器的modules目录下命令:cp /usr/local/jakarta-tomcat-connectors-1.2.15-src/jk/native/apache2.0/mod_jk.so /usr/local/apache/modules3、配置apache与jkconnector集成,并整合tomcat(1)打开apache配置文件,添加jk模块,就是我们刚才上面生成的so文件vi /usr/local/apache/conf/httpd.conf在263行加入:LoadModule jk_module modules/mod_jk.sovi如何显示行号?在VI的命令模式下输入“:set nu” 或者修改vi配置文件“vi ~/.vimrc”,在其中添加“set nu”(2)在httpd.conf末尾加入:#这个指定在apache启动时调用,告诉apache调用可用的tomcat worker实例,这些worker被定义在worker.propertise文件中。该指令必须被定义在全局变量中JkWorkersFile /usr/local/apache/conf/workers.propertise# 这个指定作用是通过调用uriworkermap.propertise中定义的内容处理映射关系,将相对应的文件请求教给对象的worker处理。该指令必须被定义在全局变量中JkMountFile /usr/local/apache/conf/uriworkermap.propertise#指定tomcat连接模块的日志文件存放位置JkLogFile /usr/local/apache/logs/mod_jk.log#日志级别能被定义为debug,info,warn,error,traceJkLogLevel info#将请求的内容指向一个worker处理JkMount /*.jsp ajp13JkMount /servlet/* ajp13#修改访问组权限303行User nobodyGroup nobody注: User和Group是Apache的安全保证,访问权限缺省设置为nobody和nogroup,这个用户和组在系统中不拥有文件,保证了服务器本身和由他启动的CGI进程没有权限更改文件系统。(3)配置worker.propertise在/usr/local/apache/conf下,新建worker.propertise文件命令:vi /usr/local/apache/conf/workers.propertise添加如下内容:worker.list=tomcat1,tomcat2,loadbalancer#========tomcat1========worker.tomcat1.port=8180worker.tomcat1.host=localhostworker.tomcat1.type=ajp13worker.tomcat1.lbfactor=1#========tomcat2========worker.tomcat2.port=8280worker.tomcat2.host=localhostworker.tomcat2.type=ajp13worker.tomcat2.lbfactor=1worker.loadbalancer.type=lbworker.loadbalancer.balanced_workers=tomcat1,tomcat2worker.loadbalancer.sticky_session=1保存退出说明:¥这里我们配置了两个tomcat,所以,我们将原来安装好的tomcat复制一份,改名为tomcat2即可,所以现在我们的tomcat_home分别为/usr/local/tomcat和/usr/local/tomcat¥定义了两个worker名字为tomcat1和tomcat2,监听端口为8180,8280,主机名为localhost或ip地址,通过ajp13协议与服务器通讯。定义了第三个worker名字为Loadbalancer,这个worker是用作负载均衡的,worker类型为lb,通过调用tomcat1和tomcat2两个worker做负载均衡, worker.tomcat2.lbfactor参数,它是节点的负载加权,它的值越大,获得负载的机会就越大,即分配到此节点的请求越多。以上两个节点的权重比为1:1,即平均分配,负载甲醛的设置可以根据node的硬件性能进行调整。¥在定义tomcat1和tomcat2端口时,要和tomcat自身的tomcat_home/conf/server.xml文件中定义的端口号一致,这里定义的8180和8280都是从8009端口修改的(4)配置uriworkermap.propertise在/uri/local/apache/conf下,新建uriworkermap.propertise文件命令:vi /usr/local/apache/conf/uriworkermap.propertise添加如下配置:/*=loadbalancer!/*.gif= loadbalancer!/*.jpg= loadbalancer!/*.png= loadbalancer!/*.css= loadbalancer!/*.js= loadbalancer!/*.htm= loadbalancer!/*.html= loadbalancer!/*.jsp=loadbalancer说明: 感叹号表示接下来的 URI 不要由 JK 进行处理,也就是 Apache 直接处理所有的图片、 css 文件、 js 文件以及静态 html 文本文件(5)修改tomcat配置¥修改server.xml命令:vi /usr/local/tomcat1/conf/server.xml修改:<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2" />(即把jvmRoute项修改为workers.propertise文件中定义个worker名tomcat2,修改tomcat2的配置文件时,将这里修改为tomcat1,根据你自己的实际情况)修改端口分别为,8005(关闭端口)\8009(启动端口,该端口和上述workers.propertise文件中指定的相同)举例:<Server port="9005" shutdown="SHUTDOWN" /> 改自8005<Connect port=“8180”enableLookups="false" redirectPort="8443" protocal="AJP/1.3" /> 这句话默认是被注释掉的,去掉注释,并加入ajp13协议。修改tomcat2时,将这里修改为8280,根据你自己的实际情况¥修改/etc/profile文件,加入如下内容。在前面安装jdk,安装tomcat的时候,我们已经部分加入,现在只需根据自己的实际情况改动即可。export JAVA_HOME=/usr/java/jdk1.7.0_21export JRE_HOME=/usr/java/jdk1.7.0_21/jreexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHexport CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/libCATALINA_BASE=/usr/local/tomcat1CATALINA_HOME=/usr/local/tomcat1export CATALINA_BASE CATALINA_HOMECATALINA_2_BASE=/usr/local/tomcat2CATALINA_2_HOME=/usr/local/tomcat2export CATALINA_2_BASE CATALINA_2_HOMETOMCAT_HOME=/usr/local/tomcat1export TOMCAT_HOMETOMCAT_2_HOME=/usr/local/tomcat2export TOMCAT_2_HOME保存退出source /etc/profile使profile生效¥修改tomcat启动脚本添加如下内容:export CATALINA_BASE=$CATALINA_BASEexport CATALINA_HOME=$CATALINA_HOME修改tomcat2时,这里修改为export CATALINA_BASE=$CATALINA_2_BASEexport CATALINA_HOME=$CATALINA_2_HOME¥配置完tomcat测试一下,tomcat是否能正常运行。启动命令:user/local/tomcat1/bin/startup.sh查看进程:ps -ef|grep tomcat有进程信息即正常停止命令:user/local/tomcat1/bin/shutdown.sh至此,linux下的tomcat集群已经配置完毕了。测试一下:在tomcat1和tomcat2中的webapps中分别定义两个测试目录,名字都定义为test,在该目录下新建index.jsp文件,在tomcat1下的index.jsp中写“this is tomcat1”,在tomcat2下的index.jsp中写“this istomcat2”分别启动tomcat1,tomcat2,apache,通过远程浏览器访问,你的服务器ip/test访问,多次F5刷新,看访问结果。