60.Unix2008. 12. 16. 17:08
반응형

유닉스에서 개발 웹 서버 설치, 설정하기

빠르고 기능이 풍부하고 자유롭게 사용 가능한 웹 서버를 만들면서 여러분의 유닉스 실력을 한 단계 높여보자

developerWorks
Go to the previous page 12 페이지 중 3 페이지 Go to the next page

문서 옵션
수평출력으로 설정

이 페이지 출력


제안 및 의견
피드백

튜토리얼 평가

이 컨텐츠를 개선하기 위한 도움을 주십시오.


아키텍처 개요

톰캣의 제약 사항과 전형적인 엔터프라이즈 환경이 어떻게 구성되는지 알아보자.

제약 사항

톰캣이 개발 환경에서 단일 서버로 돌아가도록 할 것인가? 꽤나 제한적이지 않은가? 그렇다. 사실이다! 톰캣은 사실 다운로드 횟수만 수백만 회이고 여러 잘 알려진 웹 사이트의 실 서비스 환경에서도 성공적으로 동작하고 있다. 하지만 거기엔 제약 사항이 있다.

상용 소프트웨어 제품(특히 IBM WebSphere Application Server)은 실 서비스 환경에서 훨씬 더 우월한데 J2EE를 완벽히 준수하고 추가 기능과 보안 기능을 갖추고 있다는 것이 주된 이유다. 기능적으로 완벽한 실 서비스 환경에서 톰캣을 구현하려고 한다면 기초를 갖추는 데 이 튜토리얼을 이용할 수 있을 것이다.

엔터프라이즈 환경

그림 1에서 보인 엔터프라이즈 아키텍처에 대한 것은 브라우저에서 엔터 키를 눌렀을 때 벌어지는 일들을 다소 정확하게 표현한 것이다. 이 아키텍처에는 IBM과 미 공군(United States Air Force)의 수억 달러짜리 미션 크리티컬 애플리케이션을 포함한 내가 봐온 나라 전역에서 고객을 위해 동작하는 애플리케이션들의 반복되는 요소들로 구성되어 있다.


그림 1. 엔터프라이즈 아키텍처의 예
엔터프라이즈 아키텍처의 예

A. 네트워크에 대한 경계

보통은 네트워크에 경계가 있다. 라우터나 방화벽, 그리고 웹 요청과 적절한 도메인을 일치시켜 주는 프록시 서버(엄밀히 말하면 리버스 프록시) 같은 것들 말이다. 어떤 인증의 수준이 있을 수도 있고, 심지어 DMZ(demilitarized zone)에 의해 보호받게 될 네트워크 상의 첫 서버에 도달하기도 전에 앞단의 IBM Tivoli® Access Manager(TAM)/TAM WebSEAL 서버 수준에서 허가를 받아야 할지도 모른다.

B. 웹 서버

다음엔 웹 서버다. 이런 서버들은 모두 수직적 그리고 수평적 장애 극복(failover) 기능을 갖추고 있는데 이 말 뜻은 각 단에서 분리되었지만 쌍둥이인 하드웨어가 존재하고 가능한 한 소프트웨어 단에서 복제해 둠을 의미한다. 웹 서버가 웹 요청을 받아서 정적인 내용을 제공하는 일을 한다면 또 다른 계층의 네트워크 디스패처(dispatcher: ND)를 갖거나 최소한 추가적인 라우팅을 수행하는 플러그인(IBM HTTP 서버(IHS) 플러그인 같은 것)을 가질 수도 있다.

C. 애플리케이션 서버(서블릿 엔진)

이제 J2EE 엔진(WebSphere Application Server)이다. J2EE 엔진은 웹 혹은 서블릿 컨테이너뿐 아니라 기본적인 것에서 전문적인 자바 함수와 비즈니스 로직을 다루는 EJB(Enterprise JavaBean) 컨테이너로 구성되어 있다. 웹 서비스와 IBM WebSphere MQ 메시지를 연결하는 등 무수히 많은 일을 하기 위해 여러 어댑터를 쓸 수도 있다. 그리고 자주 MySQL, IBM DB2®, 오라클(Oracle) 백엔드와 연결하는 데이터베이스 연결 풀도 갖는다.

LDAP(Lightweight Directory Access Protocol) 서버 그리고 옛날 방식의 서버들과 연결할 가능성이 있다면 실제 n-티어 아키텍처를 갖는다. 이제 웹 서버 환경을 시작해 보자.




위로


개발 환경

그림 2를 보자. 브라우저를 통해 인터넷에 접근할 수 있는 도구를 일부 갖고 있는 단일 유닉스 운영체제에 단일 서버 설치에 기반을 둔다고 가정하자. 이 서버에는 톰캣, 여러 운영체제 수준의 도구들뿐만 아니라 (가능하다면) 자체 로컬 데이터베이스나 최소한 로컬 저장소(로컬 디렉터리 구조)에 저장되는 소프트웨어와 애플리케이션 코드도 함께 저장될 것이다.

기억해둘 것: 필자가 톰캣 서버라 함은 전체 컨테이너를 의미한다.


그림 2. 독립형 서버 아키텍처의 예
독립형 톰켓 서버

실제 엔터프라이즈 아키텍처처럼 보이진 않겠지만 적어도 서버에서 기본적인 애플리케이션 기능을 복제할 수 있을 것이다. 제한적이긴 하지만 의도와 목적면에서 여러분이 관리자라면 이번에 설치해 보는 것은 예제로 테스트 개발 서버를 설치한다거나 그저 연습삼아 써볼 서버를 설치한다고 생각하자.

아파치 HTTP 서버 프런트 엔드와 톰캣을 분리해서 설정하여 구동할지 선택할 수 있으나 이 튜토리얼의 목적 상 추천하지는 않는다. 좀 더 해야 할 일도 많고 관리하고 설정할 것도 많아지기 때문이다. 또한 mod_jk 모듈도 필요할 것이고 적절히 라우팅도 설정해야만 한다.

어느 쪽을 택하든 설치와 설정을 하기 전에 공통 질문으로 가자.

Posted by 1010