有没有办法在动态运行Tomcat时更改端口?
例如,Tomcat在默认的8080端口运行,是否有一种方法启动 Tomcat时使用catalina.sh运行以传递端口号?
注意:我知道可以在server.xml文件中进行更改以更改端口,但我在启动Tomcat时会询问一些事情(例如传递给catalina.sh的参数)。
答案 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