【问题标题】:Run Tomcat with a different port on the fly使用不同的端口即时运行 Tomcat
【发布时间】:2013-05-23 18:21:13
【问题描述】:

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

例如,Tomcat 在默认的 8080 端口上运行,有没有办法在启动时 Tomcat 使用 catalina.sh run 来传递端口号?

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

【问题讨论】:

  • 我做到了,我发现的所有来源都只是指向我更改 server.xml 文件中的端口,但没有任何关于动态更改的内容:)
  • 我们说的是什么tomcat版本?
  • Tomcat 最新版本(7)

标签: tomcat


【解决方案1】:

您可以创建一个具有不同端口的 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

【讨论】:

  • 我希望能够即时更改它。每当启动 Tomcat 时,使用我作为参数传递的端口启动。
  • 感谢您的解决方案:)
  • 是的。请参阅下面的答案。
  • Dockerfile 中的示例,只是为了好玩。 RUN sed "s/8080/8081/g" &lt; /tomcat/conf/server.xml &gt; /tmp/server.xml(换行符)RUN cp /tmp/server.xml /tomcat/conf/server.xml。使用它来更改NetflixOSS ZeroToDocker demo for Asgard 中的默认端口。
猜你喜欢
  • 2014-12-26
  • 2013-12-08
  • 1970-01-01
  • 2013-02-20
  • 2016-09-12
  • 2013-10-31
  • 1970-01-01
  • 2014-11-23
  • 2016-10-10
相关资源
最近更新 更多