2016년 11월 27일 일요일

Apache Web Server 개념, 설치, 설정

<개념>
-웹서버: 웹브라우저와 같은 클라이언트로부터 HTTP요청을 받아들이고, HTML문서와 같은 웹페이지를 반환하는 컴퓨터 프로그램이다.
-Client/Server 2tier 구조에서 Client요청을 받아서 요청을 정적으로 처리하는 서버이다.
-정적이란? HTML, JPG, CSS, JAVA script와 같은 파일을 웹클라이언트에 제공할때 웹서버를 사용하며, 동적 페이지 처리가 필요하다면 WAS에 처리를 넘긴다.

-종류: Apache, Nginx, IIS, WebtoB, OHS, iPlanet

<설치>
  1. 다운로드
    -인터넷이 가능한 PC에서 http://httpd.apache.org/download.cgi 접속한다.
  2. 요구사항
    -디스크 여유공간이 최소 50MB 이상인지 확인한다. 설치 후 아파치는 약 10MB의 디스크 공간을 차지한다.
    -ANSI C 컴파일러가 설치 되어있는지 확인한다. Free Software Foundation(FSF)의 GNU C compiler(GCC)를 추천, GCC가 없다면 최소한 사용하는 컴파일러가 ANSI 호환인지 확인한다. 추가로 PATH 환경변수는 make와 같은 기본적인 컴파일 도구를 포함해야 한다.
  3. 압축풀기
    -압축파일의 압축을 OS명령어를 통해 압축을 푼다.
    $ gunzip httpd-{버전}.tar.gz
    $ tar xvf httpd-{버전}.tar
  4. 소스 트리 구성하기
    -아파치웹서버를 구성하기 위해 $APACHE_HOME 디렉터리 안에 ./configure를 명령을 실행한다.
     > 가장 중요한 옵션은 --prefix다 --prefix는 아파치를 동작하기 위해 아파치를 구성하고 설치할 디렉터리이다.
     > 추가적인 옵션을 확인하기 위한 URL: https://httpd.apache.org/docs/current/ko/programs/configure.html#installationdirectories
    $ ./configure --prefix={디렉터리}
  5. 컴파일
    -make 명령어를 통해서 컴파일 한다.
    $ make
  6. 설치
    -4번에서 PREFIX옵션에 지정한 디렉터리에 설치한다.
    $ make install
  7. 설정
    -$PREFIX/conf/httpd.conf 파일을 vi로 열어 설정한다. 
  8. Apache 웹서버 기동
    -PREFIX/bin/apachectl start
     > httpd라는 데몬 프로세스가 기동된다.

  9. Apache 웹서버 종료
    -PREFIX/bin/apachectl stop
<설정>
-아파치 설정 파일: $APACHE_HOME/conf/httpd.conf
  1. ServerRoot "/was/httpd-2.4"
    : Apache의 홈디렉터리를 지정하여 절대경로로 지정한다. 
  2. Listen 80
    : 시스템의 기본값 이외에 다른 IP 주소와 포트에 대해서도 연결할 수 있도록 해준다. 주로 가상호스트(Virtual Host)부분에서 기본 80번 이외에 다른 포트를 이용하여 가상호스트를 설정하고자 할 때에 필요하다.
  3. ServerAdmin
    : 웹문서 로딩시 에러가 발생했을 경우와 같이 에러페이지에 보여질 관리자 메일 주소이다.
  4. ServerName
    : 클라이언트에게 보여주는 호스트이름을 지정한다. 
  5. <Directory> ~ </Directory>
    : 지정한 디렉터리이하의 모든 웹문서들에 대하여 어떤 서비스와 기능을 허용/거부 할 것인지를 설정하는 매우 중요한 지시자이다. 현재 루트 디렉터리에 대한 심볼릭링크를 허용하고 .htaccess파일을 사용을 거부한다. <Directory> 설정 목적에 맞게 사용한다. 
  6. DocumentRoot "/was/httpd-2.4/htdocs"
    : 서버의 웹문서가 있는 경로를 지정한다. 경로의 마지막에 '/'를 추가해선 안되고 심볼릭 링크나 Alias를 사용하여 다른 위치를 가리키도록 할 수 있다.
  7. ErrorLog "logs/error_log"
    : 아파치 웹서버의 에러로그파일의 위치를 지정하는 것으로 가상호스트설정에서 별도의 에러로그파일의 위치를 지정하지 않았다면 이곳에 모두 저장된다. 
  8. LogLevel warn
    : 에러로그파일의 기록내용을 자세하게 기록할 것인가를 결정하는 지시자이다.


댓글 없음:

댓글 쓰기