tomcat中server.xml端口配置的简单阐述:
一般server.xml都会有都是有三个port端口以及两个redirectPort端口这里简单解释一下这几个端口的意思
下面是某个项目的tomcat配置文件
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8008" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
<Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<GlobalNamingResources>
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
</GlobalNamingResources>
<Service name="Catalina">
<Connector connectionTimeout="20000" port="8010" protocol="HTTP/1.1" redirectPort="8446"/>
<Connector port="8021" protocol="AJP/1.3" redirectPort="8447"/>
<Engine defaultHost="localhost" name="Catalina">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
<Context docBase="/admin-web" path="/admin-web" reloadable="true" source="org.eclipse.jst.jee.server:admin-web"/>
</Host>
</Engine>
</Service>
</Server>
下面展示的是tomcat server.xml文件的简化后的简单结构:
<Server>//第一个port端口的配置处
<Listener />//可以有多个
<GlobaNamingResources>
</GlobaNamingResources>
<Service name="Catalina">
<Connector />//第一个connect 这里是第二个port和第一个redirectPort
<Connector />//第二个connect 这里是第三个port和第二个redirectPort
<Engine>
<Logger />
<Realm />
<host>
<Logger />
<Context />
</host>
</Engine>
</Service>
</Server>
简单介绍一下这三处的端口作用
第一处
<!-- 启动Server
在端口8005处等待关闭命令
如果接受到"SHUTDOWN"字符串则关闭服务器-->
<Server port="8005" shutdown="SHUTDOWN" debug="0">
1>className指定实现org.apache.catalina.Server接口的类.默认值为org.apache.catalina.core.StandardServer
2>port指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的.
3>shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置
第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;
<Connector port="8080" maxThread="50" minSpareThreads="25" maxSpareThread="75" enableLookups="false" redirectPort="8443" |acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />
属性说明
port:服务器连接器的端口号,该连接器将在指定端口侦听来自客户端的请求。
41. enableLookups:如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名;
42. 若为false则不进行DNS查询,而是返回其ip地址。
43. redirectPort:服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号。
44. acceptCount:当所有可以使用的处理请求的线程都被用光时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,而返回Connection refused错误。
45. connectionTimeout:等待超时的时间数(以毫秒为单位)。
46. maxThreads:设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200。
47. protocol:默认设置为HTTP/1.1协议必须设定为AJP/1.3协议。
48. address:如果服务器有两个以上IP地址,该属性可以设定端口监听的IP地址,默认情况下,端口会监听服务器上所有IP地址。
49. minProcessors:服务器启动时创建的处理请求的线程数,每个请求由一个线程负责。
50. maxProcessors:最多可以创建的处理请求的线程数。
51. minSpareThreads:最小备用线程 。
52. maxSpareThreads:最大备用线程。
53. debug:日志等级。
54. disableUploadTimeout:禁用上传超时,主要用于大数据上传时。
第二个Connector元素一般把 protocol:设定为AJP/1.3协议。
<Connection port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />
负责和其他HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时就需要用到这个连接器。主要就是定义了一个JD Connector,它通过8009端口接收由其它服务器转发过来的请求.*