显示标签为“Linux”的博文。显示所有博文
显示标签为“Linux”的博文。显示所有博文

【转】linux下配置,启动多个tomcat

0 评论  

1. 环境:

  • Red Hat Linux 9(本人CentOs5.2,其实想想这个问题跟Linux的版本的关系的可以忽略)
  • Tomcat 5.5.17(Tomcat5.5.27)

2. 需要解决一下几个问题

  • 不同的tomcat启动和关闭监听不同的端口
  • 不同的tomcat的启动文件startup.sh 中要指定各自的CATALINA_HOMECATALINA_BASE这两个环境变量。

3. 解决步骤:

3.1. 修改/etc目录下的profile文件,添加一组java环境变量,和两组CATALINA环境变量;修改后的profile文件示例如下:

JAVA_HOME=/usr/java/jdk

CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JAVA_HOME/bin

export JAVA_HOME CLASSPATH

CATALINA_BASE=/usr/local/tomcat

CATALINA_HOME=/usr/local/tomcat

export CATALINA_BASE CATALINA_HOME

CATALINA_2_BASE=/usr/local/tomcat2/apache-tomcat-5.5.17

CATALINA_2_HOME=/usr/local/tomcat2/apache-tomcat-5.5.17

export CATALINA_2_BASE CATALINA_2_HOME

TOMCAT_HOME=/usr/local/tomcat

export TOMCAT_HOME

TOMCAT_2_HOME=/usr/local/tomcat2/apache-tomcat-5.5.17

export TOMCAT_2_HOME

3.2. 第一个安装在/usr/local/tomcat处的tomcat,保持解压后的原状不用修改。修改第二个安装在/usr/local/tomcat2/apache-tomcat-5.5.17处的tomcat。需要修改两个地方:

3.2.1. 修改server.xml配置和第一个不同的启动、关闭监听端口。修改后示例如下:

  端口:8005->9005

 端口:8080->9080

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" />

端口:8009->9009

enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

3.2.2. 修改bin下的startup.shshutdown.sh。修改后的示例如下:(同样的修改)

export JAVA_HOME=/usr/jdk(如未设置过Java_home)

export PATH=$PATH:$JAVA_HOME/bin(同上)

export CLASSPATH=$JAVA_HOME/lib(同上,这些设置最好放到profile里面去)

export CATALINA_HOME=$CATALINA_2_HOME 利用profile中第二组设置

export CATALINA_BASE=$CATALINA_2_BASE 利用profile中第二组设置

4. 修改完毕后,必须重新启动linux。可能是因为修改了profile文件的缘故?

5. 分别进入两个tomcatbin目录,启动tomcat——./startup.sh

6. 然后访问http://localhost:8080 http://localhost:9080 都可以看到熟悉的tomcat欢迎界面。

7. 如果想启动多个可以依此法类推…… 转自:http://blog.csdn.net/guorui303/archive/2007/02/08/1505442.aspx

【转】Apache + Tomcat*2集群 负载平衡(Linux环境) 一台机器上实测

0 评论  

说明:一台apache主机,两台tomcat主机

(注:做Research,没那么多主机,只有一台,跑了apache进程一个,Tomcat进程两个,这里还涉及到一个问题,在同一个机器上跑两个Tomcat,Windows里面是很简单的,改conf文件夹下面的server.xml里面的端口,不冲突就可以了,Linux里面却没这么简单,参考另一篇转的文章,如何在Linux里面开两个Tomcat,另所有步骤均通过Putty远程连接到Linux环境进行)

步骤如下:

  1. 安装JDK、
  2. 安装Apache、
  3. 安装Tomcat、
  4. 配置Apache代理、
  5. 配置Tomcat集群

一、安装JDK(所有运行Tomcat主机,即web服务器) 1.下载JDK的bin包,如jdk-1_5_0_02-linux-i586.rpm.bin ,给其添加执行权限(注:chmod 777 jdk-1_5_0_02-linux-i586.rpm.bin ),执行#./jdk-1_5_0_02-linux-i586.rpm.bin , 在

当前目录生成rpm安装包,同样给其添加执行权限。 再执行 #rpm -ivh jdk-1_5_0_02-linux-i586.rpm 出现安装协议 按接受即可。 2.设置环境变量 #vi /etc/profile 在其最后加入

JAVA_HOME =/ usr / java / jdk1. 5 .0_02 CLASSPATH = .:$JAVA_HOME / lib:$JAVA_HOME / jre / lib PATH = $PATH:$JAVA_HOME / bin:$JAVA_HOME / jre / bin export JAVA_HOME CLASSPATH PATH

保存退出

(注:如需验证是否设置正确,可以运行 echo $JAVA_HOME的方式来查看环境变量是否正确,不过运行之前需要运行 source /etc/profile更新环境变量) 3.要使JDK在所有的用户中使用,可以这样:vi /etc/profile.d/java.sh在新的java.sh中输入以下内容: #set java environment JAVA_HOME=/usr/java/jdk1.5.0_02 CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin export JAVA_HOME CLASSPATH PATH 保存退出,然后给java.sh分配权限:chmod 755 /etc/profile.d/java.sh

二、安装Apache(访问代理主机) 1.下载apache源代码 wget http://archive.apache.org/dist/httpd/httpd-2.2.2.tar.gz

解压缩 tar fvxz httpd-2.2.2.tar.gz

2.进入解压后的目录。进行配置:

./configure --prefix=/usr/local/apache --enable-module=most --enable-proxy --enable-proxy-ajp --enable-forward --enable-proxy-connect --enable-proxy-http --enable-so --enable-deflate --enable-headers --enable-include (拷贝到该目录下执行即可)

上面的配置,用到了其他一些模块,说不定以后会用到,如支持ssi的include模块。

3.编译(编译如果不成功,确认一下你的linux是否安装有编译所需要的c环境和其他需要的类库) make

4.安装 make install

5.进入/usr/local/apache目录,运行apache ./apachectl -k start

运行apache后,浏览一下是否运行正常。

关闭apache ./apachectl -k stop

6.把apache作为linux的启动就运行服务程序(该步骤未尝试) 执行如下操作:cp /usr/apache/bin/apachectl /etc/rc.d/init.d/httpd 确认linux以前安装的httpd(apache)不需要了,你可覆盖掉以前apache的httpd文件。 chkconfig --add httpd 运行linux的setup,把httpd服务默认设定为自动运行。 到现在,你就可用另一种方式来启动、关闭apache了。如service httpd start

三、安装tomcat(Web服务器) 1.下载jakarta-tomcat-5.5.20.tar.gz tar zxf jakarta-tomcat-5.5.20.tar.gz 解压文件 (如解压到/usr/local/) 2.设置环境变量 #vi /etc/profile 添加 CATALINA_HOME=/usr/local/jakarta-tomcat-5.5.30 export CATALINA_HOME

(注:如只有一台主机,见如何在Linux里面同时开两个Tomcat) 保存退出

3.修改JVM内存:/bin/catalina.sh 文件 在下# ----- Execute The Requested Command ----------------- # Bugzilla 37848: only output this if we have a TTY if [ $have_tty -eq 1 ]; then echo "Using CATALINA_BASE: $CATALINA_BASE" echo "Using CATALINA_HOME: $CATALINA_HOME" echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR" if [ "$1" = "debug" -o "$1" = "javac" ] ; then echo "Using JAVA_HOME: $JAVA_HOME" else echo "Using JRE_HOME: $JRE_HOME" fi fi 添加以下内容:

CATALINA_OPTS = " $CATALINA_OPTS -Xms256m -Xmx512m -XX:PermSize=32m -XX:MaxPermSize=128m $JPDA_OPTS " JAVA_OPTS = " $JAVA_OPTS -Djava.awt.headless=true " echo " Using CATALINA_OPTS: $CATALINA_OPTS " echo " Using JAVA_OPTS: $JAVA_OPTS "

4.运行/usr/local/jakarta-tomcat-5.5.30/bin/startup.sh 启动tomcat服务器 测试是否正常

四、配置apache代理(适用mod_proxy_ajp.so) 编辑apache配置文件 #vi /usr/apache/conf/httpd.conf 1.配置proxy_ajp #加载解析模块(windows下,或linux采用动态加载模式下需配置。前面我们的linux编译时把下面的模块嵌入到了apache中

,所以不用再加载) LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 2.配置文件添加

ProxyPass / balancer://tomcatcluster/ stickysession=JSESSIONID nofailover=on timeout=5 maxattempts=3 ProxyPassReverse / balancer://tomcatcluster/ BalancerMember ajp://192.168.18.152:8019 smax=2 loadfactor=1 route=tomcat2 BalancerMember ajp://192.168.18.152:8009 smax=2 loadfactor=2 route=tomcat1

以上说明请参见mod_proxy中文手册 http://www.6bee.com/tech/ApacheMenu/mod/mod_proxy.html 3.其他说明

1、apache对tomcat的支持历史:apache第2.1版本后,内置了proxy_ajp,而jk2已经没人开发了,jk则支持到apache的

2.0.58版本。 proxy_ajp配置较简单,但可配置性还不如jk2,主要表现在proxy_ajp目前只支持配置到目录,还不支持对文件名称的pattern模式匹

配(即还不能定义到只对jsp文件起作用)。

2、因为proxy_ajp的配置,还不支持对文件名称的pattern模式匹配,所以你要特别注意: ——尽量把jsp和静态文件和图片路径分不同的目录来管理; ——对于静态文件和图片路径,如/images,你可用“ProxyPass /images !”来禁止ProxyPass,从而来让apache来直接处理图片的请

求。 ——关于apache的ssi(即shtml,include)与tomcat的集成时,shtml文件不能处于ProxyPass的控制下(即不能在ProxyPass目录)

,而shtml调用的jsp须在ProxyPass有效控制下;

五、配置Tomcat负载均衡、集群 1.修改tomcat 的 conf/server.xml 的 去掉注释 jvmRoute是tomcat路由标示,由此区分两台tomcat主机,那么第二台就改为 jvmRoute="tomcat2"> 加上注释 2.修改tomcat 的 conf/server.xml 的 去掉注释

3.修改tomcat 的 conf/server.xml 的

把上面的注释拿掉 就ok 了!

(因为是同一台机器上运行两个,所以另外一个Tomcat除了需要改8080,8005,8009端口之外还需要改这里的集群监听端口4001)

4.在每个webapps应用中,修改web.xml文件 添加元素 最后完工,重启tomcat,apahce测试平衡负载,新建jsp页面 <% Runtime lRuntime = Runtime.getRuntime(); out.println("*** BEGIN MEMORY STATISTICS *** "); out.println("Free Memory: "+lRuntime.freeMemory()/1024/1024+"M "); out.println("Max Memory: "+lRuntime.maxMemory()/1024/1024+"M "); out.println("Total Memory: "+lRuntime.totalMemory()/1024/1024+"M "); out.println("Available Processors : "+lRuntime.availableProcessors()+" "); out.println("*** END MEMORY STATISTICS ***"); %> <%= request.getSession().getId() %> 放入到两台tomcat的ROOT目录中测试 转自:http://envoydada.javaeye.com/blog/95162

Linux学习杂记一

0 评论  

最近在写Python脚本,Windows下面开发,要放到Linux下面去运行。从上周三开始写,基本的功能都已经有了,就等需求完善了就可以实际的去运行了,然后今天配了台服务器专门运行Linux供测试用,服务器只有主机,所以的操作都通过Putty远程连接,在终端执行命令。首先是配运行的环境,服务器上装的是Fedora 7 Live CD,装好以后就有Python2.5了,但是因为写程序的时候用到了第三方的Lxml,所以在Fedora里面也要把这个装好。 一开始以为装一下lxml很简单的,跟Window里面一样解压好压缩包,运行 python setup.py install就好了,结果呢,出了很多问题,先提示说 GCC没有,装上GCC,又提示一个config目录找不到,Google一下,安装了一个Python-devel,又提示编译出错,火了,换了个RPM的安装包,直接安装,倒是很顺,可惜运行的时候报错,网上也对应Fedora7的找不到最新版的Lxml RPM安装包,只好回到前面再装,继续Google,看见有人说要先装Libxml-devel跟libxslt-devel.抱着死马当活马医的态度,装了,居然就可以了,呵呵。 想想Linux下面跟Windows还是很不一样的,Linux下面很多东西的安装都需要gcc编译,所以要用到GCC,然后Linux下面很多软件又专门分了一个devel,很多时候又要注意这个Devel。 具体错误就不贴了,做的时候比较忙,做完了又不能重现了。