sourcecode

Tomcat의 루트에 응용 프로그램 배포

copyscript 2023. 1. 15. 17:10
반응형

Tomcat의 루트에 응용 프로그램 배포

이치노루트 레벨로 전개할 필요가 있습니다.은 "URL"입니다.http://localhost:8080/war_name/application_name.

몇 가지 옵션이 있습니다.

  1. 후 바로 .ROOT/및을 Tomcat에서 디렉토리로 합니다.ROOT.war★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

  2. (예에서) (예에서)로 전개하라.war_name.war컨텍스트 루트를 설정합니다.conf/server.xml파일을 하려면:

    <Context path="" docBase="war_name" debug="0" reloadable="true"></Context>
    

첫 번째는 더 쉽지만 좀 더 촌스럽다.두 번째는 아마도 그것을 하는 더 우아한 방법일 것이다.

on Tomcat v.7(신규 설치)

conf/server.xml의 합니다.</Host>기기: :

<Context path="" docBase="app_name">
    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

docBase Atribute에 주의해 주세요.중요한 부분이에요.루트 웹 앱을 변경하기 전에 app_name을(를) 배포했는지 확인하거나 압축 해제된 웹 앱(app_name)을 Tomcat의 웹 앱 폴더에 복사합니다.root에 접속하여 app_name을 참조하십시오.

이러한 변경이 적용된 Tomcat 7에서는 /에서 myAPP에 액세스하고 /ROOT에서 ROOT에 액세스 할 수 있습니다.

<Context path="" docBase="myAPP">
     <!-- Default set of monitored resources -->
     <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="ROOT" docBase="ROOT">
     <!-- Default set of monitored resources -->
     <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

의 를 「」에 합니다.<Host>xmlserver.xml의

제 답변이 다른 답변과 다소 중복되는 것은 알지만, 이것은 몇 가지 장점이 있는 완전한 해결책입니다.이것은 Tomcat 8에서 동작합니다.

  1. 메인 어플리케이션은 루트에서 제공됩니다.
  2. 웹 인터페이스를 통한 전쟁 파일 배포는 유지됩니다.
  3. 메인 애플리케이션은 포트 80에서 실행되며 관리자만 관리 폴더에 액세스할 수 있습니다(*nix 시스템에서는 80에 바인딩하기 위해 슈퍼유저가 필요하지만 Windows에서는 문제가 되지 않습니다).

즉, Tomcat을 한 번만 재시작하면 되고 업데이트된 전쟁 파일을 문제 없이 배포할 수 있습니다.

스텝 1: server.xml 파일에서 커넥터 엔트리를 찾아 다음으로 대체합니다.

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

<Connector
    port="80"
    protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

2: 「」의 : 「」<Host ...> 삭제:

<Context path="/" docBase="CAS">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/ROOT" docBase="ROOT">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/manager" docBase="manager" privileged="true">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/host-manager" docBase="host-manager" privileged="true">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

webapp을 사용합니다.ROOT.http://example.com/ROOT메인 어플리케이션이 켜져 있습니다.http://example.com/된 웹 에는 ""가 privileged="true"여하하다

CAS.(「CAS.war」).<Context path="/" docBase="CAS">배포 시 새로 고쳐지지 않으므로 관리 패널에 있는 해당 파일을 새로고침해야 합니다.

를 포함하지 않습니다.<Context path="/CAS" docBase="CAS">manager 옵션을 비활성화하여 워 파일을 전개할 수 있도록 합니다.즉, 두 가지 방법으로 앱에 액세스할 수 있습니다.http://example.com/그리고.http://example.com/APP/

순서 3: 루트 및 매니저 폴더에 대한 원치 않는 액세스를 방지하려면valve다음과 같은 콘텍스트태그에 접속합니다.

<Context path="/manager" docBase="manager" privileged="true">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
        addConnectorPort="true"
        allow="143\.21\.2\.\d+;8080|127\.0\.0\.1;8080|::1;8080|0:0:0:0:0:0:0:1;8080"/>
</Context>

이는 기본적으로 관리 웹 앱 폴더에 대한 액세스를 기본 포트 8080을 사용할 때 내 도메인(가짜 IP 주소) 및 localhost 사용자로 제한하고 웹 인터페이스를 통해 전쟁 파일을 동적으로 배포할 수 있는 기능을 유지합니다.

다른 IP 주소를 사용하는 여러 앱에 대해 이 기능을 사용하려면 커넥터에 IP 주소를 추가할 수 있습니다( ).address="143.21.2.1").

루트에서 여러 웹 앱을 실행하는 경우 서비스 태그를 복제하여(다른 이름을 사용하여) 의 문서 베이스를 변경할 수 있습니다.<Context path="/" docBase="CAS">예를 들면<Context path="/" docBase="ICR">.

제거한다.$CATALINA_HOME/webapps/ROOT.갱신하다$CATALINA_HOME/conf/server.xmlHost 요소가 다음 텍스트와 같은지 확인합니다.

<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="false" deployOnStartup="false">
  <Context path="" docBase="myApp"></Context>

Tomcat 8과 함께 작동합니다. autoDeploy 및 deployOnStartup은 Tomcat이 배포되지 않도록 false로 설정해야 합니다.myApp두번이라.

가장 빠른 방법.

  1. ROOT 앱이 배포되지 않았는지 확인하십시오. 배포 취소(있는 경우)

  2. war 이름을 ROOT.war로 변경, 전개, 설정 변경 불필요

@Dima의 답변에 추가(사용하시는 경우)maven패키지를 빌드하기 위해 WAR 파일명을 다음과 같이 설정할 수 있습니다.ROOTpom.xml:

<build>
    <finalName>ROOT</finalName>
</build>

디폴트로는tomcat전개하다ROOT.warwebapp을 루트 컨텍스트에 넣습니다(/).

@Rob Hruska의 sol에 더해 server.xml inside 섹션의 이 설정은 다음과 같이 동작합니다.

<Context path="" docBase="gateway" reloadable="true" override="true"> </Context>

참고: 경우에 따라 재정의="true"가 필요할 수 있습니다.

open tomact manager url :- http://localhost:8080/manager/filen/
「/」가 전개되면, 애플리케이션이 패스를 가지는 것을 확인할 수 있습니다.
간단히 이것을 전개 해제해 주세요.
여기에 이미지 설명 입력응용 프로그램의 워 파일 이름을 ROOT.war로 변경하고 경로:-에 배치합니다.
C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps
톰캣추가 설정은 필요 없습니다.
이제 어플리케이션 홈페이지 또는 설정된 URL을 http://localhost:8080에서 볼 수 있습니다.

내 서버에서 이것을 사용하고 있는데, root autodeploy는 정상적으로 동작합니다.

   <Host name="mysite" autoDeploy="true" appBase="webapps" unpackWARs="true" deployOnStartup="true">
        <Alias>www.mysite.com</Alias>
        <Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="X-Forwarded-Proto"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="mysite_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b"/>
        <Context path="/mysite" docBase="mysite" reloadable="true"/>
    </Host>

언급URL : https://stackoverflow.com/questions/5328518/deploying-my-application-at-the-root-in-tomcat

반응형