2012-02-23 2 views
27

Java 웹 응용 프로그램이 포함 된 war 파일을 받았는데 해당 전쟁을 로컬에서 실행하려면 Tomcat이 필요합니까? 아니면 Tomcat ? Apache httpd (또는 다른 웹 서버)가 필요합니까? 미리 감사드립니다!Tomcat에는 Apache httpd가 필요합니까?

답변

39

Tomcat은 자체 웹 서버이므로 Apache와 같은 별도의 웹 서버는 필요하지 않습니다. 그것은 8080 기본값 및 웹 사이트가 포트에서 보통이기 때문에 당신은 아마,하지만 톰캣의 포트를 변경하는 것이 좋습니다 80

나는 그들이 같은 것들을 할 수 있도록 사람들이 일반적으로 톰캣 앞에 아파치를 넣어 생각 :

  • 하나의 웹 사이트에 여러 개의 Tomcat 인스턴스가 있습니다.
  • Apache에서 정적 파일을 제공하여 Tomcat에서 부하를 제거합니다.
  • 필요한 다른 Apache 기능 (모듈)을 사용하십시오. 코멘트에 언급 @TacticalCoder
  • 으로, 당신은 그래서 어떤 사람들은 포트 8080

내가 좋겠에 프록시 포트 80 쉬운 방법으로 아파치를 사용하고있을 수 있습니다, 포트 80에서 수신하도록 루트해야 YAGNI 접근법을 권장하고, 아파치가 앞에 놓이는 이유를 찾지 못하면 /까지 Tomcat을 사용한다.

+0

Ahhh - Tomcat *은 웹 서버입니다. "Catalina"가 서블릿 프로세서/컨테이너라고 생각합니까? – IAmYourFaja

+0

@AdamTannon - 예, [Catalina] (http://en.wikipedia.org/wiki/Apache_Tomcat#Catalina)는 서블릿 컨테이너입니다. –

+6

@Bredan Long : * "아마도 Tomcat의 포트를"* [sic]로 변경하고 싶을 것입니다. 예를 들어 Un * x OS에서주의해야 할 점은 포트 80/443에서 * root * . 그러나 Java/Tomcat을 * root *로 설치하는 것은 반드시 좋은 습관은 아닙니다. Linux에서는 * root *가 아닌 Java를 설치할 수 있습니다. * root *가 없어도 Tomcat을 설치할 수 있습니다. 그런 다음 루트로서 방화벽 (예 : * iptables)을 사용하여 포트 80/443을 8080/4443으로 투명하게 리디렉션 할 수 있습니다 (예 :). 이것은 일반적으로 Tomcat을 * root *로 실행하고 포트 80/443에서 직접 수신하는 것보다 "안전"하다고 간주됩니다. – TacticalCoder

5

톰캣. HTTPD는 Tomcat에 대한 요구 사항이 아닙니다.

+0

HTTPC가 Tomcat에 필요하지 않다면 어떤 프로세스가 수신 서버 요청을 처리할까요? 설명해 주시겠습니까? 감사. –

+0

@KanagaveluSugumar Tomcat은 포트 8080에서 기본 HTTP 서버를 실행합니다 (따라서 포트 리디렉션을 설정하여 HTTP 포트 80으로 들어오는 요청을 수신하거나 URL 요청에서 포트 8080을 지정합니다). 또한 제공된 server.xml 파일에 다음 요소가 표시됩니다. <커넥터 className = "org.apache.tomcat.service.PoolTcpConnector"> <매개 변수 이름 = "핸들러" 값 = "org.apache.tomcat.service.http.HttpConnectionHandler"/> <매개 변수 이름 = "포트" 값 = "8080"/> 는 앞에 아파치 HTTP 서버를 설정하려면 tomcat 서버의 경우이 항목을 server.xml에 주석으로 처리하십시오. – sactiw

+0

@sactiw 감사합니다 !! –

0

Tomcat 또는 기타 Java 서블릿 컨테이너 (Jetty, resin, etc.) 만 있으면됩니다.

0

Tomcat은 자체 http 서버가있는 서블릿 컨테이너이므로 전쟁을 실행하려면 바람둥이 만 있으면되지만 정적 파일 (HTML, js, css) 만 포함하는 웹 사이트를 실행하려면), 톰캣이 이것을 할 수 있다고하더라도 더 나은 아파치를 선택해야합니다.

관련 문제