>  기사  >  백엔드 개발  >  Server.xml 내용에 대한 자세한 설명 [Tomcat]

Server.xml 내용에 대한 자세한 설명 [Tomcat]

Y2J
Y2J원래의
2017-04-24 10:57:581810검색

Tomcat Server의 구조도

Tomcat Server를 시작하는 방법을 설명하는 파일입니다


아아앙요청 처리를 위한 기본 호스트 이름을 지정합니다. 이는 최소한 다음과 동일합니다. 호스트 요소의 이름 속성 값이 동일합니다. 애플리케이션의 경로 또는 WAR 파일이 저장된 경로 로거(로그, 디버깅 및 오류 정보를 나타냄)
요소 이름

속성

설명

서버 포트 리스닝을 담당하는 포트를 지정합니다. tomcat 요청 종료
shutdown 포트로 전송되는 명령 문자열 지정
서비스 이름 서비스 이름을 지정하세요
커넥터(클라이언트와 서비스 간의 연결을 나타냄) port 서버를 지정합니다. 포트 번호를 생성하고 이 포트에서 클라이언트의 요청을 수신합니다.
minProcessors 프로세서는 서버 시작 요청된 스레드 수
maxProcessors 요청을 처리하기 위해 생성할 수 있는 최대 스레드 수
enableLookups true인 경우 request.getRemoteHost( )를 사용하여 DNS 쿼리를 수행합니다. false인 경우 DNS 쿼리는 수행되지 않지만 해당 IP 주소는
redirectPort 지정된 서버가 처리 중입니다. http 요청 시 SSL 전송 요청을 받은 후 리디렉션할 포트 번호입니다. 요청을 처리하는 데 사용된 스레드를 모두 사용했을 때 처리할 수 있는 요청 수입니다. 이 숫자를 초과하는 요청은 처리되지 않습니다.
connectionTimeout 시간 초과 수(밀리초)를 지정합니다.
엔진(지정된 서비스 시스템에서 요청 처리를 나타내며 커넥터로부터 요청을 받아 처리함) defaultHost
컨텍스트(웹 애플리케이션을 나타내며 일반적으로 WAR 파일입니다. WAR에 대한 자세한 내용은 서블릿 사양을 참조하세요.) docBase
path 이 웹 애플리케이션 URL의 접두어를 나타내므로 요청된 URL은 http://localhost:8080/path/****
다시 로드 가능 이 속성이 true인 경우 Tomcat은 자동으로 애플리케이션의 /WEB-INF/lib를 감지하고 /WEB-INF/classes 디렉토리로 변경하여 새 애플리케이션을 자동으로 로드합니다. . tomcat을 다시 시작하지 않고도 애플리케이션을 변경할 수 있습니다. 🎜>호스트 이름 지정
appBase 애플리케이션 기본 디렉토리, 즉, 애플리케이션이 저장된 디렉터리
unpackWARs true이면 Tomcat이 자동으로 WAR 파일의 압축을 풀고, 그렇지 않으면 WAR 파일
압축을 풀지 않고 애플리케이션을 직접 실행하지 않습니다. className 로거에서 사용하는 클래스 이름을 지정하세요. 이 클래스는 org.apache를 구현해야 합니다.
접두사 로그 파일의 접두사 지정
접미사 로그 파일의 접미사 지정
timestamp true인 경우 다음 예와 같이 로그 파일 이름에 시간을 추가해야 합니다. localhost_log.001-10-04.txt
영역(사용자 이름, 비밀번호 및 역할을 저장하는 데이터베이스를 나타냄) className Realm Name에서 사용하는 클래스를 지정합니다. 이 클래스는 org.apache.catalina.Realm 인터페이스
Valve(기능은 Logger와 유사하며, 접두사 및 접미사 속성 설명은 Logger와 동일합니다. ) className Valve에서 사용하는 클래스 이름을 지정합니다. org.apache.catalina.valves.AccessLogValve 클래스를 사용하여 애플리케이션의 액세스 정보
디렉터리 를 기록합니다. 로그 파일이 저장되는 위치
pattern 에는 두 가지 값이 있습니다. 이름 또는 IP 주소, 사용자 이름, 날짜, 첫 번째 줄에 요청된 문자열 및 HTTP 응답, 전송된 바이트 수입니다. 결합방식이 일반방식보다 더 많은 값을 기록

元素 它代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接口来定义.它包含一个元素.并且它不能做为任何元素的子元素.

注意:一个“Server”自身不是一个“Container”(容器),因此在这里你 不可以定义诸如“Valves”或者“Loggers”子组件 –>

在端口8005处等待关闭命令 如果接受到”SHUTDOWN”字符串则关闭服务器 –>

测试: telnet localhost 8005 输入:SHUTDOWN 结果:关闭tomcat


<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监听端口的字符串.该属性必须设置

元素 该元素由org.apache.catalina.Service接口定义,它包含一个元素,以及一个或多个,这些Connector元素共享用同一个Engine元素

注意:一个“Service”自身不是一个容器,因此,在这个级别上你不可定义 诸如“Valves”或“Loggers”子组件。 –>

Service是一组Connector的集合 它们共用一个Engine来处理所有Connector收到的请求 –>

第一个处理所有直接由Tomcat服务器接收的web客户请求. 第二个处理所有由Apahce服务器转发过来的Web客户请求 .

1>className 指定实现org.apahce.catalina.Service接口的类.默认为org.apahce.catalina.core.StandardService 2>name定义Service的名字

元素 由Connector接口定义.元素代表与客户程序实际交互的给件,它负责接收客户请求,以及向客户返回响应结果.


<!– 一个“Connector”(连接器)代表一个请求被接收和应答所需要的端点。每个连 接器通过相关的“Container”(容器)处理请求。
默认情况下,一个非SSL的HTTP/1.1的连接器被绑定在端口8080。你也可以通过 根据后面的使用说明并取消第二个连接器入口的注释,在端口8443上建立一个 SSL HTTP/1.1的连接器。开放SSL支持需要下面几步(参见Tomcat 5文档中怎样 配置SSL的说明以取得更多的详细信息): * 如果你的JDK是1.3或1.3以前的版本,下载安装JSSE 1.0.2或以后版本,并放 置JAR文件到“$JAVA_HOME/jre/lib/ext”目录下。 * 带一个“changeit”的口令值执行: %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows) $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (UNIX) 来生成它自己的证书私钥。
默认情况下,当一个web应用程序调用请求时,DNS查询是可行的。这将对性能造 成一些不利的影响,因此,你可以将“enableLookups”设置为“false”来关闭DNS 查询。当DNS查询被关闭时,request.getRemoteHost()将返回包含远程客户IP地 址的字符串。 –><!– Coyote HTTP/1.1 Connector className : 该Connector的实现类是org.apache.coyote.tomcat4.CoyoteConnector port : 在端口号8080处侦听来自客户browser的HTTP1.1请求.如果把8080改成80,则只要输入 http://localhost/即可 protocol:设定Http协议,默认值为HTTP/1.1 minSpareThreads: 该Connector先创建5个线程等待客户请求,每个请求由一个线程负责 maxSpareThread:设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200 acceptCount : 当现有线程已经达到最大数75时,为客户请求排队.当队列中请求数超过100时,后来的请求返回Connection refused错误 redirectport : 当客户请求是https时,把该请求转发到端口8443去 enableLookups:如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用request.getRemoteHost方法返回客户机主机名.默认值为true connectionTimeout:定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间其它属性略 –><Connector port=”8080″ maxThread=”50″ minSpareThreads=”25″  maxSpareThread=”75″ enableLookups=”false” redirectPort=”8443″  acceptCount=”100″ debug=”0″ connectionTimeout=”20000″  disableUploadTimeout=”true” /><Connection port=”8009″ enableLookups=”false” redirectPort=”8443″ debug=”0″ protocol=”AJP/1.3″ />

第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定义了一个JD Connector,它通过8009端口接收由其它服务器转发过来的请求.

元素 每个Service元素只能有一个Engine元素.处理在同一个中所有元素接收到的客户请求.由org.apahce.catalina.Engine接口定义.


<!– 一个“Engine”(引擎)代表处理每个请求的入口点(在Catalina内)。这个Tomcat 的标准独立引擎实现分析包含在请求中的HTTP头信息,并将请求传送到适当的主机 或虚拟主机上。–><!– Engine用来处理Connector收到的Http请求  它将匹配请求和自己的虚拟主机,并把请求转交给对应的Host来处理  默认虚拟主机是localhost –><Engine name=”Catalina” defaultHost=”localhost” debug=”0″>

1>className指定实现Engine接口的类,默认值为StandardEngine 2>defaultHost指定处理客户的默认主机名,在中的子元素中必须定义这一主机 3>name定义Engine的名字

可以包含如下元素, , ,

元素 它由Host接口定义.一个Engine元素可以包含多个元素.每个的元素定义了一个虚拟主机.它包含了一个或多个Web应用.


<!– 定义默认的虚拟主机 注意:XML模式确认将不能与Xerces 2.2同工作。 –><!– 虚拟主机localhost appBase : 指 定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录.如果没有此项,默认 为<CATALINA_HOME>/webapps. 它将匹配请求和自己的Context的路径,并把请求转交给对应的Context来处 理 autoDeploy:如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用 unpackWARs:如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件 alias:指定主机别名,可以指定多个别名 deployOnStartup:如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用.如果Web应用 中的server.xml没有相应的<Context>元素,将采用Tomcat默认的Context –> 
<Host name=”localhost” debug=”0″ appBase=”webapps” unpackWARs=”true” autoDeploy=”true”>

元素中可以包含如下子元素 , , , < Context>元素 它由Context接口定义.是使用最频繁的元素.每个可以包含多个元素.每个web应用有唯一 的一个相对应的Context代表web应用自身.servlet容器为第一个web应用创建一个


<!– Context,对应于一个Web App  path : 该Context的路径名是”",故该Context是该Host的默认Context docBase : 该Context的根目录是webapps/mycontext/ reloadable:如果这个属性设为true,  Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改运.如果监视到有class文件 被更新,服务器自重新加载Web应用 useNaming:指定是否支持JNDI,默认值为了true cookies指定是否通过Cookies来支持Session,默认值为true –> 
 <Context path=”" docBase=”mycontext” debug=”0″/>

Tomcat Server处理一个http请求的过程

假设来自客户的请求为:

localhost:8080/wsota/wsota_index.jsp

1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得 2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应 3) Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host 4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机) 5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context 6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为”"的Context去处理) 7) path=”/wsota”的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类 9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法 10)Context把执行完了之后的HttpServletResponse对象返回给Host 11)Host把HttpServletResponse对象返回给Engine 12)Engine把HttpServletResponse对象返回给Connector 13)Connector把HttpServletResponse对象返回给客户browser

위 내용은 Server.xml 내용에 대한 자세한 설명 [Tomcat]의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.