use*_*864 2 ubuntu cluster mod-jk tomcat6 farmwardeployer
我已经设置了 apache-tomcat 集群(Ubuntu Server),我使用了 tomcat 支持的集群技术和 mod_jk链接。我已经设置了一个负载均衡器和两个 Web 服务器。
主要问题是部署 WAR 文件以及部署到哪个 Web 服务器?我了解了 Farmed Deployment,它将 war 文件部署到集群中的其他 tomcat 服务器,但我还没有让它工作。我在两个 Web 服务器上的元素中以以下方式使用了场部署器。
网络服务器 1(192.168.1.101)
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/usr/share/tomcat/temp/"
deployDir="/usr/share/tomcat/webapps/"
watchDir="/usr/share/tomcat/watch/"
watchEnabled="true"/>
Run Code Online (Sandbox Code Playgroud)
网络服务器 2(192.168.1.102)
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/usr/share/tomcat/temp/"
deployDir="/usr/share/tomcat/webapps/"
watchDir="/usr/share/tomcat/webapps/"
watchEnabled="false"/>
Run Code Online (Sandbox Code Playgroud)
我将 WAR 放在 web 服务器 1 上的 watch 目录中,但它没有部署到其他服务器。任何人都得到了这个工作,我做错了什么?,请告诉我!
谢谢!
更新:1
我可以在 catalina.out 日志中的任何一台机器中看到以下信息,
14 Aug, 2011 9:12:11 PM org.apache.catalina.ha.deploy.FarmWarDeployer start
SEVERE: FarmWarDeployer can only work as host cluster subelement!
Run Code Online (Sandbox Code Playgroud)
它甚至不部署到 webserver1,也不部署到 webserver2。访问网站时出现 404 错误。还有什么帮助...?还有一件事,我没有从 apt 存储库安装 tomcat,而是从源代码构建它,这对于我们的 Java 应用程序来说非常完美。
您应该查看的第一个位置是catalina.out,它会告诉您可能有什么问题。
如果你不能让它与多播一起工作,只需尝试静态成员资格 (我认为它会更简单)。
下面是我的配置:
将<Cluster节点放在<Host元素内:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="192.168.5.149"
port="4000"
selectorTimeout="100"
maxThreads="6"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
<Member className="org.apache.catalina.tribes.membership.StaticMember"
port="4001"
securePort="-1"
host="192.168.5.199"
domain="staging-cluster"
uniqueId="{0,1,2,3,4,5,6,7,8,9}"/>
</Interceptor>
</Channel>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/usr/share/tomcat6/tempdir/"
deployDir="/usr/share/tomcat6/webapps/"
watchDir="/usr/share/tomcat6/watchdir/"
watchEnabled="true"/>
</Cluster>
</Host>
</Engine>
Run Code Online (Sandbox Code Playgroud)
address在属性<Receiver元素是节点1的IP地址。(在你的情况下是 .101)port正在监听复制消息在节点1(4000-4100)Member's port在<Interceptor正在监听群集消息在节点2上Member's host是节点2的IP地址(0.102)server.xml 在节点 2 上:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="192.168.5.199"
port="4001"
selectorTimeout="100"
maxThreads="6"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
<Member className="org.apache.catalina.tribes.membership.StaticMember"
port="4000"
securePort="-1"
host="192.168.5.149"
domain="staging-cluster"
uniqueId="{0,1,2,3,4,5,6,7,8,9}"/>
</Interceptor>
</Channel>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/usr/share/tomcat6/tempdir/"
deployDir="/usr/share/tomcat6/webapps/"
watchDir="/usr/share/tomcat6/watchdir/"
watchEnabled="false"/>
</Cluster>
Run Code Online (Sandbox Code Playgroud)
确保 Tomcat 可以写入tempDir和watchDir文件夹:
chmod g+w tempDir watchDir
chgrp tomcat tempDir watchDir
Run Code Online (Sandbox Code Playgroud)
如果你不这样做,你会得到以下错误:
Aug 13, 2011 10:28:33 PM org.apache.catalina.ha.deploy.FarmWarDeployer messageReceived
SEVERE: Unable to read farm deploy file message.
java.io.IOException: Permission denied
Run Code Online (Sandbox Code Playgroud)
记得补充<distributable/>到webapps/ROOT/WEB-INF/web.xml:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
...
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
<distributable/>
</web-app>
Run Code Online (Sandbox Code Playgroud)
每当您将.war文件复制到watchdir节点 1 上的文件夹中时,您将在 中看到类似以下内容catalina.out:
Aug 14, 2011 1:40:58 AM org.apache.catalina.ha.deploy.WarWatcher check
INFO: check cluster wars at /usr/share/tomcat6/watchdir
Aug 14, 2011 1:40:59 AM org.apache.catalina.ha.deploy.FarmWarDeployer fileModified
INFO: Installing webapp[/cas] from /usr/share/tomcat6/webapps/cas.war
Aug 14, 2011 1:40:59 AM org.apache.catalina.ha.deploy.FarmWarDeployer remove
INFO: Cluster wide remove of web app /cas
Aug 14, 2011 1:40:59 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive cas.war
Run Code Online (Sandbox Code Playgroud)
在节点 2 上:
Aug 14, 2011 1:40:59 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive cas.war
Run Code Online (Sandbox Code Playgroud)
祝你好运!
| 归档时间: |
|
| 查看次数: |
9479 次 |
| 最近记录: |