구성 파일 및 세션 복제 톰캣

Tomcat 서버 구성

server.xml의

server.xml을 톰캣 톰캣 서블릿 컨테이너 (카탈리나)의 모든 구성을 포함하는 핵심 구성 파일 서버입니다

섬기는 사람

<Server port="8005" shutdown="SHUTDOWN">
...    
</Server>
  • 서버는 서버 인스턴스를 만들 server.xml에의 루트 요소, 기본 구현 클래스는 org.apache.catalina.core.StandardServer입니다.
  • 하위 요소
    • 포트 : 포트 차단 서버 다운 Tomcat은 듣고있다.
    • 종료 : 서버 명령 문자열 종료합니다.
  • 하위 라벨
    • 리스너 : 리스너 (기본 오가지)

      <!‐‐ 用于以日志形式输出服务器 、操作系统、JVM的版本信息 ‐‐>
      <Listener className="org.apache.catalina.startup.VersionLoggerListener"
      />
      
      <!‐‐ 用于加载(服务器启动) 和 销毁 (服务器停止) APR。 如果找不到APR库, 则会输出日志, 并不影响Tomcat启动 ‐‐>
      <Listener className="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on" />
      
      <!‐‐ 用于避免JRE内存泄漏问题 ‐‐>
      <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
      
      <!‐‐ 用户加载(服务器启动) 和 销毁(服务器停止) 全局命名服务 ‐‐>
      <Listener	className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
      
      <!‐‐ 用于在Context停止时重建Executor 池中的线程, 以避免ThreadLocal 相关的内存泄漏 ‐‐>
      <Listener	className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
      
    • GlobalNamingResources : 글로벌 네임 서비스를 정의

      <!‐‐ Global JNDI resources
      	   Documentation at /docs/jndi‐resources‐howto.html
      ‐‐>
      <GlobalNamingResources>
      		  <!‐‐ Editable user database that can also be used by
      		       UserDatabaseRealm to authenticate users
      		  ‐‐>
      		  <Resource name="UserDatabase" auth="Container"
      		            type="org.apache.catalina.UserDatabase"
      		            description="User database that can be updated and saved"             
      					factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                   		pathname="conf/tomcat‐users.xml" />	
      </GlobalNamingResources>	
      
    • 서비스

      <Service name="Catalina">
      ...    
      </Service>
      
      • 서버 A 서버는 여러 서비스 서비스를 포함 할 수 있습니다.
      • org.apache.catalina.core.StandardService 기본.
      • 기본적으로 Tomcat은 오직 서비스 "카탈"값의 이름을 지정합니다.
      • 하위 섹션 :
        • 리스너 : 서비스 라이프 사이클에 대한 리스너를 추가

        • 집행 인 : 공유 스레드 풀 (당신이 다음, 공유 스레드 풀을 구성하는 각 Connecto 독립적으로 스레드 풀을 만들 포기하지 않는 경우, 공유 스레드 풀을 추가하지 않습니다 서비스의 기본 구성.) 구성 서비스에 사용되는

          <Executor name="tomcatThreadPool"
          namePrefix="catalina‐exec‐"
          maxThreads="200"
          minSpareThreads="100"
          maxIdleTime="60000"
          maxQueueSize="Integer.MAX_VALUE"
          prestartminSpareThreads="false"
          threadPriority="5"
          className="org.apache.catalina.core.StandardThreadExecutor"/>
          

          속성 설명 :

          • 이름 : 커넥터 스레드 풀의 이름을 지정했습니다.
          • namePrefix : 생성 된 각 스레드, namePrefix +의 ThreadNumber라는 별도의 스레드에 대한 이름 접두사.
          • maxThreads : 풀에서 스레드의 최대 수입니다.
          • minSpareThreads : 활성 스레드의 수가 코어가있는, 파괴되지 않은 이러한 스레드가 항상 존재하게 풀 스레드의 수입니다.
          • maxIdleTime : 스레드 유휴 시간,이 시간 이후, 유휴 스레드가 파괴됩니다, 기본 값은 밀리 초 (일분) 6000입니다.
          • maxQueueSize : 스레드의 최대 수는 기본 무한히 넓다 최대 INT, 인 라인 전에 실행합니다. 특별한 경우를 제외하고,이 값은 변화를 필요로하지 않는다, 또는 상황이 발생할 처리 요청이 없을 것입니다.
          • prestartminSpareThreads : 스레드 시작 스레드 풀의 minSpareThreads 부분을 시작할지 여부를 지정합니다. 기본값은 false입니다 시작되지 않습니다.
          • threadPriority : 우선 순위 스레드 풀은 기본 값은 5, 1에서 10까지의 값입니다.
          • 클래스 이름 : 스레드 풀 구현 클래스, 상황이 지정되지 않은에서, org.apache.catalina.core.StandardThreadExecutor의 기본 구현 클래스. 사용자 지정 스레드 풀 org.apache.catalina.Executor 인터페이스를 구현하는 최초의 필요성을 사용합니다.
        • 커넥터가 : 링크 구성은 기본적으로 (포함 서비스를 위해, server.xml에 두 링커로 구성, 각각 HTTP 프로토콜을 지원, 대부분의 경우 AJP 프로토콜 만이 필요, 새로운 링크 구성을 필요로하지 않습니다. 이 링커 최적화)

          <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
          redirectPort="8443" />
          <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
          

          속성 설명 :

          • 포트 : 포트 번호, 커넥터 및 소켓은 클라이언트 요청 링크를 기다리고, 서버를 기울인다을 만드는 데 사용. 이 속성을 0으로 설정하면, Tomcat은 무작위로 사용하는 현재의 커넥터에 사용 가능한 포트 번호를 선택합니다.
          • 프로토콜 : 현재 커넥터 접속 프로토콜을 지원합니다. 기본값은 HTTP / 1.1과 기초 링커의 자동 선택을위한 스위칭 메커니즘 JAVA NIO 4 월 기반 로컬 또는 링커 (로컬 로컬 라이브러리 톰캣를 포함하는지 여부에 따라 결정됨). 당신이 자동 스위치기구 있지만, 명시 적으로 지정된 프로토콜을 사용하지 않으려면, 다음과 같은 값을 사용할 수있다.
            • HTTP 프로토콜 :
              • org.apache.coyote.http11.Http11NioProtocol 비 블록 자바 NIO 링커
                * org.apache.coyote.http11.Http11Nio2Protocol 비 블록 JAVA NIO2 링커
                * org.apache.coyote.http11.Http11AprProtocol 4 월 링커
            • AJP 프로토콜
              • org.apache.coyote.ajp.AjpNioProtocol는 자바 NIO 링커 비 - 블로킹 (non-blocking)
              • org.apache.coyote.ajp.AjpNio2Protocol는 JAVA NIO2 링커 비 - 블로킹 (non-blocking)
              • org.apache.coyote.ajp.AjpAprProtocol, 4 월 링커
          • 은 ConnectionTimeout은 : 커넥터는 밀리 초 단위로 링크 타임 아웃을받은 후 대기. -1 시간 제한이 없음.
          • 있는 redirectPort가 : 커넥터가 현재 SSL 요청을 지원하지 않는, 요청이 필요 받았으며, 또한 보안 제약 조건 제약 조건에 부합되는 SSL 전송은 카탈 자동으로 지정된 포트로 요청을 리디렉션합니다.
          • 집행 인 : 지정 공유 스레드 풀의 이름, 당신은 또한 maxThreads, minSpareThreads 다른 속성에 의해 내부 스레드 풀을 구성 할 수 있습니다.
          • URIEncoding : 문자 인코딩을 URI를 인코딩 지정된, Tomcat8.x 버전 기본 UTF-8 인코딩, ISO-8859-1의 Tomcat7.x의 기본 버전.
          • 의 MaxConnections : 연결의 최대 수는, 그것은 2000 주위에 추천
          • acceptCount : 대기의 최대 수 (연결의 MaxConnections = + acceptCount 거부한다 더 이상)
          • maxThreads : 스레드의 최대 수
          <Connector port="8080"  
          protocol="HTTP/1.1"
          executor="tomcatThreadPool"
          maxThreads="1000"  
          minSpareThreads="100"  
          acceptCount="1000" 
          maxConnections="1000" 
          connectionTimeout="20000"
          compression="on" 
          compressionMinSize="2048" 
          disableUploadTimeout="true" 
          redirectPort="8443" 
          URIEncoding="UTF‐8" />
          
        • 엔진 : 해당 링커 엔진 서블릿 컨테이너 구성 서비스

          <Engine name="Catalina" defaultHost="localhost">
          	...    
          </Engine>
          
          • 하위 요소 :
            • 이름 : 엔진의 이름을 지정, 기본값은 카탈입니다. 이름은 (임시 파일) 톰캣 부분의 저장 경로에 영향을 미칠 것입니다.
            • defaultHost에서 : 호스트에 유효하지 않은 클라이언트 요청은 기본 가상 호스트 처리에 제출됩니다 사용에 기본 가상 호스트 이름, 기본값은 localhost입니다.
          • 하위 라벨
            • 호스트 : 호스트 요소는 가상 호스트를 구성하는 데 사용됩니다
              <Host name="localhost"  appBase="webapps" unpackWARs="true"
              autoDeploy="true">
              	    ...
              </Host>   
              
              • 속성 설명 :
                • 이름 : 현재 호스트 일반적인 네트워크의 이름을 DNS 서버에 등록 된 정보와 일치해야합니다. 엔진은 호스트 defaultHost에서 엔진 설정의 이름과 일치가 있어야 포함되어 있습니다.
                • appBase이 : 현재 호스트 응용 프로그램의 기본 디렉토리, 웹 응용 프로그램이 현재 디렉토리에있는 호스트에 배포 (디렉토리는 절대, 상대 경로 일 수 있습니다). 기본값은 웹 어플리케이션입니다.
                • unpackWARs : 시작 디렉토리 것이다 appBase 전쟁 압축을 풀고 디렉토리에서 진정한 호스트로 설정합니다. false로 설정되어, 호스트 전쟁 파일에서 직접 실행됩니다.
                • autoDeploy : 정기적으로 감지하고 자동 실행시에 신규 또는 변경된 웹 응용 프로그램을 배포할지 여부 바람둥이 제어 할 수 있습니다.
              • 당신이 엔진에 영역을 구성 할 경우,이 구성은 현재 엔진에서 호스트의 모든 공유됩니다. 당신이 호스트 영역을 구성하는 경우 마찬가지로, 현재 호스트에있는 모든 상황에 공유.
              • 우선 순위 영역에서 컨텍스트 영역의 우선 순위> 영역의 호스트 우선 순위>에서 엔진.
            • 하위 라벨
              • 별칭 : 별칭을 추가 할 수있는 호스트 (같은 여러 네트워크 호스트 이름을 달성 할 수 있습니다)
                <Host name="www.web1.com"  appBase="webapps" unpackWARs="true"
                autoDeploy="true">
                    <Alias>www.web2.com</Alias>
                </Host>  
                
              • 컨텍스트 : 구성 웹 응용 프로그램은 기본 구성은 다음입니다
                <Context docBase="myApp" path="/myApp">
                	    ....
                </Context> 
                
                • 속성 설명 :
                  • Docbase의 : 웹 응용 프로그램 디렉토리 또는 경로 전쟁 배포 패키지. 그것은 절대 수 있지만 호스트 appBase 상대적인 경로 일 수있다.
                  • 경로 : 웹 응용 프로그램의 컨텍스트 경로. 우리가 호스트 localhost를 호출하면, 웹 응용 프로그램 루트 경로는 액세스 : 통해 http : // localhost : 8080 /을 myApp합니다.
                • CookieProcessor, 로더, 관리자, 영역, 자원, WatchedResource, JarScanner, 밸브 : 인라인 요소를 지원합니다.
                  <Host name="www.tomcat.com"  appBase="webapps" unpackWARs="true"
                  		autoDeploy="true">
                      <Context docBase="D:\servlet_project03" path="/myApp"></Context> 
                  
                      <Valve className="org.apache.catalina.valves.AccessLogValve"
                  directory="logs"
                             prefix="localhost_access_log" suffix=".txt"
                             pattern="%h %l %u %t &quot;%r&quot; %s %b" />
                  
                  </Host>
                  

바람둥이-users.xml에서

  • 구성 파일은 톰캣 사용자, 역할 및 기타 정보의 주요 구성입니다, 호스트 관리자에 대한 액세스 권한을 톰캣 매니저를 제어하는 ​​데 사용됩니다.
  • 톰캣 버전의 초기 때문에, 웹 관리 콘솔 버전을 제공, 그들은 webapps 디렉토리에있는 두 개의 별도의 웹 응용 프로그램입니다. 웹 응용 프로그램을 관리하기위한 호스트 관리 호스트 관리자 및 관리자를 위해 제공 톰캣 관리 응용 프로그램입니다.

호스트 관리자

  • // 로컬 호스트 : 8080 / 호스트 관리자 / html로 액세스 웹 응용 프로그램 Tomcat을 시작하면 HTTP 할 수 있습니다.

  • 호스트 관리자는 사용자가 URL을 열 때, 당신은 사용자 이름과 암호 (구성 conf의 / 바람둥이 - users.xml에서)를 입력 할 필요가 기본 액세스 제어를 추가했습니다.

  • 그래서이 페이지에 액세스하기 위해, 당신은 conf의 / 바람둥이 - users.xml 파일을 구성하고 해당 역할을 지정해야합니다 :

    <role rolename="admin‐gui"/>
    <role rolename="admin‐script"/>
    <user username="yzx" password="yzx" roles="admin‐script,admin‐gui"/>
    

    관리자-GUI : 제어 페이지 액세스에 사용되는
    관리자-스크립트가 단순한 텍스트 형태의 액세스를 제어하는 데 사용됩니다

    그림 삽입 설명 여기

매니저

  • // 로컬 호스트 : 8080 / 관리자 관리자 접속 주소는 HTTP입니다
  • 관리자는 또한 우리가 사용자 로그인에 할당 할 역할에 필요하므로, 페이지 액세스 제어를 추가
    <role rolename="manager‐gui"/>
    <role rolename="manager‐script"/>
    <user username="yzx" password="yzx" roles="admin‐script,admin‐gui,manager‐gui,manager‐script"/>
    
    그림 삽입 설명 여기
    그림 삽입 설명 여기

web.xml에

요소를 지원하고 서블릿 사양에서 정의 된 속성의 web.xml 웹 어플리케이션 설명 파일.

  • 바람둥이 / conf의 / web.xml의 기본 구성에 포함하여 웹 톰캣, 웹 애플리케이션의 설명에서,
    응용 프로그램의 WEB-INF / web.xml 파일의 사용자 정의 구성.

catalina.bat / catalina.sh

구성 JVM

  • catalina.bat (창)
    set JAVA_OPTS=‐server  ‐Xms2048m  ‐Xmx2048m  ‐XX:MetaspaceSize=256m ‐
    
  • catalina.sh (리눅스)
    JAVA_OPTS="‐server ‐Xms1024m ‐Xmx2048m ‐XX:MetaspaceSize=256m ‐XX:MaxMetaspaceSize=512m  ‐XX:SurvivorRatio=8"
    

톰캣 클러스터링 (세션 복제)

  • 에서 톰캣의 conf / server.xml을 구성입니다 다음과 같습니다 :
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
    
  • web.xml 파일의 Tomcat 응용 프로그램 전개 servlet_demo01을 다음과 같이 추가 :
    <distributable/>
    

주의하십시오

  • 작은 클러스터 환경에 대한 위의 방식 (이하 4 개 노드)
  • 더, 다음의 클러스터에서 노드의 수는, 방송의 양식을 통해 세션 복제를 완료 할 경우, 네트워크 대역폭을 많이 소비하고 서비스의 성능에 영향을 미칠 것입니다.
게시 된 109 개 원래 기사 · 원 찬양 47 ·은 30000 +를 볼

추천

출처blog.csdn.net/weixin_43934607/article/details/104386263