使用不同的端口即时运行Tomcat

时间:2013-05-23 18:21:14

标签: tomcat

有没有办法在动态运行Tomcat时更改端口?

例如,Tomcat在默认的8080端口运行,是否有一种方法启动 Tomcat时使用catalina.sh运行以传递端口号?

注意:我知道可以在server.xml文件中进行更改以更改端口,但我在启动Tomcat时会询问一些事情(例如传递给catalina.sh的参数)。

1 个答案:

答案 0 :(得分:4)

您可以使用不同的端口创建一个tomcat server.xml配置文件,并将其作为参数传递:

./bin/catalina.sh run -config conf/server9090.xml 

conf/server9090.xml中您可以设置端口的位置:

<Connector port="9090" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

你可以用这个单行完成所有这些:

 P=9090 ;sed "s/8080/$P/g" < conf/server.xml > /tmp/srv.xml && ./bin/catalina.sh run -config /tmp/srv.xml

只需将P=9090更改为您想要的端口。

或者将此脚本放在$TOMCAT_HOME/bin/run.sh

#!/bin/bash
if [ -z "$1" ];then
    echo "Usage: $0 [port]"
    exit 1
fi
cd `dirname $0`
sed "s/8080/$1/g" < ../conf/server.xml > /tmp/server.xml \
    && ./catalina.sh run -config /tmp/server.xml

使用chmod +x ./bin/run.sh

使脚本可执行

然后你可以./bin/run.sh 9090