linux下apache+tomcat集群详细配置
环境:
操作系统均为:CentOS 51
Apache2X服务器一台:IP地址1921682324;安装路径/usr/local/apache;
Tomcat6服务器一台:IP地址1921682325;安装路径/usr/local/tomcat;
Tomcat6服务器一台:IP地址1921682326;安装路径/usr/local/tomcat;
配置:
Apache安装:
#/configure --prefix=/usr/local/apache --enable-modules=so --enable-mods-shared=all --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer --enable-rewrite
注释:激活tomcat集群需要的 enable-proxy,enable-proxy-http,enable-proxy-connect,enable-proxy-ajp和enable-proxy-balancer,其中proxy-ajp和proxy-balancer必须依赖proxy,如果是自定义的编译除了以上几个必须的模块外,mod_status也要编译进去,切记。enable-proxy-ftp可以不编译。
#make;make install
制作Apache启动项:
#cp support/apachectl /etc/rcd/initd/httpd
#vi /etc/rcd/initd/httpd
添加以下内容:(包括#号)
# Startup script for the Apache Web Server
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web server It is used to server
# HTML files and CGI
# processname: httpd
# pidfile: /usr/local/apache/log/httpdpid
# config: /usr/local/apache/conf/httpdconf
增加服务项
#chkconfig --add httpd
#chmod 755 /etc/rcd/initd/httpd
#chkconfig --level 345 httpd on
JDK安装:
#chmod a+x jdk-6u4-linux-i586-rpmbin
#/jdk-6u4-linux-i586-rpmbin
JAVA环境变量设置:
#vi /etc/profile
在文件最后添加以下内容:
JAVA_HOME=/usr/java/jdk160_04
CLASSPATH=:$JAVA_HOME/lib/toolsjar:$JAVA_HOME/lib/dtjar
PATH=$JAVA_HOME/bin:$PATH
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CLASSPATH PATH CATALINA_HOME
执行如下命令使环境变量生效:
source /etc/profile
测试配置是否成功:
java –version
Tomcat安装:
#wget [url]http://apachemirrorphpchinacom/tomcat/tomcat-6/v6016/bin/apache-tomcat-6016targz[/url]
#tar zxvf apache-tomcat-6016targz
#mv apache-tomcat-6016 /usr/local/tomcat
Tomcat随机启动:
#vi /etc/rclocal
添加以下内容:
/usr/local/tomcat/bin/startupsh
tomcat6配置文件serverxml:
把
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">
改成
<!-- You should set jvmRoute to support load-balancing via AJP ie :
-->
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcatX">
<!--
<Engine name="Catalina" defaultHost="localhost">
-->
说明:
第一台tomcat就把jvmRoute="tomcat1"
第二台tomcat就把jvmRoute="tomcat2"
把
<!--
<Cluster className="orgapachecatalinahatcpSimpleTcpCluster"/>
-->
去掉注释变为
<Cluster className="orgapachecatalinahatcpSimpleTcpCluster"/>
群集详细配置
<Cluster className="orgapachecatalinahatcpSimpleTcpCluster"
channelSendOptions="8">
<Manager className="orgapachecatalinahasessionDeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="orgapachecatalinatribesgroupGroupChannel">
<Membership className="orgapachecatalinatribesmembershipMcastService"
address="228004"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="orgapachecatalinatribestransportnioNioReceiver"
address="auto"
port="4000"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="orgapachecatalinatribestransportReplicationTransmitter">
<Transport className="orgapachecatalinatribestransportnioPooledParallelSender"/>
</Sender>
<Interceptor className="orgapachecatalinatribesgroupinterceptorsTcpFailureDetector"/>
<Interceptor className="orgapachecatalinatribesgroupinterceptorsMessageDispatch15Interceptor"/>
</Channel>
<Valve className="orgapachecatalinahatcpReplicationValve"
filter=""/>
<Valve className="orgapachecatalinahasessionJvmRouteBinderValve"/>
<Deployer className="orgapachecatalinahadeployFarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="orgapachecatalinahasessionJvmRouteSessionIDBinderListener"/>
<ClusterListener className="orgapachecatalinahasessionClusterSessionListener"/>
</Cluster>
配置应用的webxml:
在每个webapps应用中,修改配置文件webxml文件 添加元素<distributable/>
在webxml文件中<web-app>元素下增加以下内容:
<!--此应用将与群集服务器复制Session-->
<distributable/>
具体修改如下:
修改前:
<xml version="10" encoding="ISO-8859-1">
<web-app xmlns="[url]http://javasuncom/xml/ns/javaee[/url]"
xmlns:xsi="http://wwww3org/2001/XMLSchema-instance"
xsi:schemaLocation="http://javasuncom/xml/ns/javaee [url]http://javasuncom/xml/ns/javaee/web-app_2_5xsd[/url]"
version="25">
</web-app>
修改后:
<xml version="10" encoding="ISO-8859-1">
<web-app xmlns="[url]http://javasuncom/xml/ns/javaee[/url]"
xmlns:xsi="http://wwww3org/2001/XMLSchema-instance"
xsi:schemaLocation="http://javasuncom/xml/ns/javaee [url]http://javasuncom/xml/ns/javaee/web-app_2_5xsd[/url]"
version="25">
<!--此应用将与群集服务器复制Session-->
<distributable/>
</web-app>
配置apache的ajp负载均衡功能:
确保将以下Module的注释去掉
LoadModule proxy_module modules/mod_proxyso
LoadModule proxy_connect_module modules/mod_proxy_connectso
LoadModule proxy_ftp_module modules/mod_proxy_ftpso
LoadModule proxy_http_module modules/mod_proxy_httpso
LoadModule proxy_ajp_module modules/mod_proxy_ajpso
LoadModule proxy_balancer_module modules/mod_proxy_balancerso
LoadModule status_module modules/mod_statusso
增加以下内容:
# Proxypass Config
Include conf/extra/httpd-modproxyconf
建立文件httpd-modproxyconf输入内容:
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from all
</Location>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from all
</Location>
ProxyRequests Off
ProxyPass / balancer://tomcatcluster stickysession=jsessionid nofailover=On
<Proxy balancer://tomcatcluster>
BalancerMember [url]http://1921682325:8080[/url] loadfactor=1
BalancerMember [url]http://1921682326:8080[/url] loadfactor=2
</Proxy>
注释:
ProxyRequests Off 表示启用反向代理,必须开启;
ProxyPass为代理转发的Url,即将所有访问/的请求转发到群集balancer://tomcatcluster,这里为/即将所有访问/的请求转发到群集balancer://tomcatcluster的/test目录;
BalancerMember为群集的成员,即群集服务器1或2,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember;
调试负载均衡集群系统:
访问apache服务器的web服务:[url]http://1921682324/balancer-manager[/url]
如果显示负载均衡有关信息则说明成功了,接着可以访问[url]http://1921682324/[/url]即访问到了tomcat的应用
必须先启动Tomcat服务再启动Apache服务!
参考文档:
[url]http://tomcatapacheorg/tomcat-60-doc/cluster-howtohtml[/url]
[url]http://tomcatapacheorg/tomcat-60-doc/balancer-howtohtml[/url]
[url]http://manchinaunixnet/newsoft/ApacheMenual_CN_22new/mod/mod_proxyhtml[/url]
[url]http://manchinaunixnet/newsoft/ApacheMenual_CN_22new/mod/mod_proxy_balancerhtml[/url]
在linux中可以实现用户定制的Tomcat实例。如果多个开发人员需要共享安装的tomcat,但是他们需要自己的唯一实例,那么非常的有用。要实现这个需要设置CATALINA_BASEexportCATALINA_BASE=$HOME/tomcat如果环境中不存在,那么CATALINA_BASE将自动被设置为CATALINA_HOME。下面,需要在主目录下建立Tomcat目录,并且创建或者拷贝特定目录。cd$HOMEmdtomcatcdtomcatmdlogsmdwebappsmdworkmdtemp如果希望拷贝tomcatwebapps目录的内容,可以把他们拷贝到新的webapps目录。修改conf/serverxml文件,替换以下的端口以免冲突。如果将Tomcat配置成为Apache的侦听端口8009,那么可以在serverxml文件中注释该元素而禁用该连接器。其他可能需要修改的端口:8080默认的连接端口8443SSL的连接端口8009Apache的侦听端口8005用于停止Tomcat的端口修改完成后,可以使用CATALINA_HOME/bin目录中的常见的startupsh与shutdownsh脚本来启动和停止Tomcat。此时候因为文件权限设置为你的用户使用,所以不要使用tomcat用户。
1 准备工作
下载相应版本的Linux版JDK、Tomcat安装文件。
例:jdk-6u21-linux-i586-rpmbin (安装版)
jdk-6u21-linux-i586rpm (安装版)
jdk-7u79-linux-x64targz (解压缩版)
推荐搭配:JDK17 + Tomcat70 较稳定
2 安装JDK
首先将安装包通过ftp上传到指定的文件目录下 例:/usr/local/java
新建文件夹命令:
[root@localhost usr]#mkdir /usr/local/java
增加执行权限命令:
[root@localhost usr]#chmod a+x jdk-6u21-linux-i586-rpmbin
安装命令:
[root@localhost usr]#rpm -ivh jdk-6u21-linux-i586rpm
说明:
以“rpm”结尾的安装包 执行:rpm -ivh jdk-6u21-linux-i586rpm 命令
以“bin”结尾的安装包 执行:/jdk-6u21-linux-i586rpm 命令
以“targz”结尾的安装包 执行:tar –xvf jdk-7u79-linux-x64targz 命令
3 配置环境变量
在/etc/profile中加入JAVA_HOME CLASSPATH PATH环境变量。
命令:[root@localhost jdk160_21]# vi /etc/profile
按‘o’进入编辑模式
在最后加入:
JAVA_HOME=/usr/local/jdk160_45(此处为对应的JDK安装路径)
CLASSPATH=:$JAVA_HOME/lib/toolsjar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH
按‘Esc’--> 输入‘:wq’保存并退出
4 JDK测试
检测JDK是否安装成功:
命令:[root@localhost ~]# java –version
如看到JVM版本及相关信息,即安装成功。
如果报错:
If 'java' is not a typo you can run the following command to lookup the package that contains the binary: command-not-found java-bash: java: command not found
则说明环境变量配置错误!
5 安装Tomcat
[root@localhost ~]# tar –xvf apache-tomcat-6029tar //解压
[root@localhost tomcat]# mkdir /usr/local/tomcat //在usr/local下新建tomcat目录
[root@localhost ~]# cp –R apache-tomcat-6029 /usr/local/tomcat //拷贝至 tomcat下
6 设置Tomcat编码(可忽略)
配置Tomcat服务器编码为UTF-8:
打开tomcat安装目录下的conf/serverxml文件,(大约在69行处)将8080端口的<connector></connector>标签中设置成 URIEncoding=”UTF-8”。
7 启动Tomcat
[root@localhost ~]# /usr/local/tomcat/apache-tomcat-6029/bin/startupsh
使用浏览器访问 http://localhost:8080,出现tomcat默认页面,说明已经安装成功
8 项目部署
将web项目打成war包,上传到Linux操作系统tomcat安装目录下的webapps下即可!
0条评论