Tomcat和Jenkins分别在同一台服务器上

我从来没有在CentOS上安装过Jenkins,但是现在我尝试了,它似乎并不能和独立的Tomcat服务器并行运行。

首先,我通过yum install tomcat tomcat来yum install tomcat (我正在使用CentOS 7)。

接下来,我添加Jenkins回购和运行yum install jenkins 。 它并没有从头开始,因为Tomcat正在运行,港口被绑定。 我已经在/ect/sysconfig/jenkins中将端口设置为8081。

现在看起来工作正常,jenkins跑起来了。

但是,我无法启动Tomcat, Caused by: java.net.BindException: Address already in use <null>:8009

如果我第一次启动tomcat ,然后启动jenkins ,同样如此:jenkins失败, Failed to start Jetty 。 我怎样才能pipe理这两个,而不是通过jenkins.war手动安装Jenkins到tomcat?

端口8009通常用于Tomcat中的AJP连接器。 它经常被用来在Apache和Tomcat之间进行通信。

这听起来像Jenkins和Tomcat正在设置一个AJP连接器来监听端口8009. Tomcat的server.xml文件将其列为:

 <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 

将其更改为在另一个端口上侦听,然后更改正在与之通信的任何端口(可能是httpd)以使用该端口。 或者,如果您没有使用连接器,则可以在一台或两台服务器中完全清除连接器。

如果Jenkins正在使用另一个Tomcat本身,那么该实例将拥有自己的server.xml 。 如果Jenkins正在使用它自己的容器(例如Winstone),那么在某处可能有类似的configuration文件。

这将摆脱java.net.BindException

在Tomcat中,默认的HTTP连接器端口是8080.如果Jenkins默认使用8080,则HTTP连接器端口可能是在/etc/sysconfig/jenkins更改为8081的。