Tomcat的8005、8080、8009、8443端口号的作用
-
8005:关闭tomcat进程所用,远程停服务端口。当执行shutdown.sh关闭tomcat时就是连接8005端口执行“SHUTDOWN”命令–由此,我们直接telnet8005端口执行“SHUTDOWN”(要大写,小写没用;只能telnet 127.0.0.1 8005,其他地址telnet都不能连接)也可以成功关闭tomcat.
但是,如果8005端口未监听那么tomcat无法用shutdown.sh关闭。
server.xml中的部分:<Server port="8005" shutdown="SHUTDOWN">
-
8080:默认的http监听端口。 8080是http 1.1 connector,如果你只用一个tomcat处理所有请求,可以只使用这个connector。
-
8443:默认的https监听端口。 默认未开启,如果要开启由于tomcat不自带证书所以除了取消注释之外,还要自己生成证书并在中指定方可。
-
8009:是ajp connector,它一般用来设置tomcat集群。
(Tomcat HTTP协议与AJP协议:https://blog.csdn.net/jeikerxiao/article/details/82745516)
比如:- 因为tomcat作为servlet容器,对于处理静态资源的能力不是很好,所以一般大点的项目都会在tomcat前面加个apache服务器,用来处理静态资源和负载均衡,通过预先设定的规则把动态请求通过ajp端口交给tomcat处理,这时可以只使用ajp connector。
- http等反向代理tomcat时就可以使用ajp协议反向代理到该端口。虽然我们经常都是使用http反向代理到8080端口,但由于ajp建立tcp连接后一般长时间保持,从而减少了http反复进行tcp连接和断开的开销,所以反向代理中ajp是比http高效的。
删改过的tomcat的server.xml
......
<Server port="8005" shutdown="SHUTDOWN">
......
<Service name="Catalina">
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
-->
“连接器”表示接收请求的端点
然后返回响应。文档:
Java HTTP连接器:/docs/config/ HTTP .html(阻塞和非阻塞)
Java AJP连接器:/docs/config/ AJP .html
APR (HTTP/AJP)连接器:/docs/ APR .html
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
在端口8080上定义一个非ssl HTTP/1.1连接器
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
在8009定义AJP协议连接器:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
在端口8443上定义SSL HTTP/1.1连接器
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
....
</Service>
</Server>