본문 바로가기
컴퓨터과학[3-2]/U.N.I.X

UNIX - [제14강] APM 설치 및 활용

by boolean 2016. 7. 20.
728x90

UNIX - [제14강] APM 설치 및 활용

● 웹서버 개요 ● Apache 설치 ● MySQL 설치

UNIX 용어정리

  • HTTP
    웹 서버와 브라우저 간에 HTML문서의 요청과 응답을 전송하기 위한 프로토콜이다. 응용 계층의 프로토콜이며 전송 계층에서는 TCP 프로토콜을 이용한다.
  • Apach 서버
    아파치 소프트웨어 재단이 지원하는 오프소스 커뮤니티에서 관리하는 HTTP 웹 서버로 공개 소프트웨어이며 다양한 운영체제에서 설치될 수 있다. 세계적으로 60% 정도의 웹 사이트에서 사용되며 월드와이드 웹의 성장에 큰 공헌을 하였다.
  • PHP
    웹 응용의 개발을 위해 설계된 서버 측 스크립트 언어이다. PHP로 작성된 스크립트 코드는 HTML 문서 안에 포함될 수 있다. PHP 페이지의 요청이 있을 때, PHP 처리 기능이 있는 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지를 동적으로 생성하여 요청에 응답한다.
  • MySQL
    관계형 데이터베이스 관리 시스템의 하나이다. 다중 사용자를 지원하고 서버로 동작될 수 있으며 오픈 소스 소프트웨어이다. 상업적 목적이 없다면 개인사용자는 무료로 사용할 수 있다. 현재는 오라클에서 관리하고 있다.

요점정리

  1. HTTP에 대하여 간단히 설명하시오.
    • HTTP는 클라이언트와 서버 간의 요청(request)과 응답(response) 프로토콜이다. 일반적으로 클라이언트는 웹 브라우저이고 서버는 Apache와 같은 웹 서버이다. HTTP는 전송 프로토콜로 대부분 TCP를 사용하며 port 번호는 일반적으로 80번을 사용한다.
    • HTTP 요청은 클라이언트가 서버에게 특정 자원(주로 웹 페이지)에 대한 요청 명령(GET, POST 등)을 보내는 것이다.
    • HTTP 응답은 클라이언트의 요청에 대한 서버의 응답이며 응답코드(200 OK, 404 Not Found 등)와 요청한 자원이 전달된다. 요청한 자원을 전달할 수 없을 경우 오류코드가 반환된다.
    • HTTP/1.0까지는 한 쌍의 요청과 응답이 끝나면 TCP 연결을 끊어졌지만 1.1 버전부터는 keep-alive 기능이 제공되어 클라이언트가 한 번의 연결로 서버에게 여러 번 요청을 보내고 응답을 받을 수 있다.
    • HTTP는 상태 정보를 유지하지 않는 stateless 프로토콜이다. 따라서 로그인 등의 상태 정보를 표현하기 위하여 cookie, session 등이 필요하다.
  2. APM을 구성하는 세 가지 요소에 대하여 알아보시오.
    • APM의 구성요소는 Apache HTTP 서버, PHP 스크립트 처리기, MySQL 데이터베이스관리시스템이다.
      • 클라이언트가 웹 문서를 Apache 웹 서버에게 요청하면 웹 문서 내에 있는 PHP 스크립트가 PHP 모듈 등에 의하여 처리되고 HTML 문서가 생성되어 클라이언트에게 응답으로 보내진다.
      • PHP 스크립트 처리 과정에 MySQL 데이터베이스에 접근하여 데이터를 검색하거나 추가, 변경, 삭제하는 등 질의를 수행할 수 있다.
    • Apache HTTP 서버
      • Apache는 현재 가장 널리 사용되는 웹 서버이다. Apache Software Foundation에 의해 개발되고 관리된다.
      • Apache Tomacat은 Apache 웹 서버와 다르다. Apache Tomcat은 Java Servlet과 JSP(JavaServer Pages) 기능을 제공하는 서버이다.
    • PHP 스크립트 처리기
      • PHP(PHP: Hypertext Processor)는 동적으로 웹 페이지를 생성할 수 있게 고안된 HTML 내장 스크립트 언어이다. 공개 소프트웨어이며 the PHP Group에 의하여 관리된다.
      • PHP의 시초인 PHP/FI(Personal Home Page / Forms Interpreter)는 1995년에 Rasmus Lerdorf에 의해 만들어졌고 현재 PHP의 모습을 가진 PHP3는 1997년 Andi Gutmans 와 Zeev Suraski에 의해 완전히 재 작성되었다.
      • PHP5는 Zend 2.0 엔진 기반의 객체지향 프로그래밍 모델을 지원한다.
    • MySQL 데이터베이스관리시스템
      • MySQL Community Server는 공개 소스 데이터베이스 관리 시스템이다. MySQL Enterprise Edition은 유료로 제공된다.
      • MySQL은 C, C++, C#, Java, PHP 등 다양한 프로그래밍 언어 인터페이스를 제공한다.
      • MySQL은 1995년 설립된 MySQL AB에 의해 개발되었으며 2008년 Sun Microsystem이 MySQL AB를 인수하였고 2010년 Oracle Corporation이 Sun Microsystem을 인수하였다.
  3. Apache 웹 서버의 설정파일 및 주요 설정항목에 대하여 설명하시오.
    • Apache 웹 서버의 설정파일은 httpd.conf이며 Apache 서버가 /etc/httpd에 설치되었을 경우 /etc/httpd/conf 디렉터리에 위치한다.
    • httpd.conf 파일에서 설정할 수 있는 주요 설정항목은 다음과 같다.
      • ServerRoot
        : Apache 서버가 설치된 디렉터리
      • KeepAlive
        : 클라이언트와 한 번의 연결로 서버와 여러 번의 요청과 응답을 주고받을 수 있도록 지속적인 연결을 허용할지 여부
      • KeepAliveTimeout
        : 클라이언트와 지속적인 연결을 유지할 최대 대기 시간
      • MaxRequestsPerChild
        : 자식 서버 프로세스를 종료하기 전에 처리할 최대 요청 수, 자식 서버 프로세스가 처리한 요청 수가 MaxRequestsPerChild 값을 초과하면 프로세스를 종료시킴
      • StartServers
        : 초기에 생성하는 자식 서버 프로세스 수
      • MinSpareServers / MaxSpareServers
        : 유휴 자식 서버 프로세스 수가 부족 또는 초과 시 자식 서버 프로세스를 생성하거나 종료시키는 기준
      • Listen
        : 서버가 사용할 TCP port 번호, 일반적으로 80번을 사용함
      • DocumentRoot
        : 웹 페이지의 문서가 위치하는 디렉터리
      • UserDir
        : 리눅스 사용자별 웹 문서의 기본 디렉터리 위치
      • DirectoryIndex
        : 클라이언트가 요청한 경로에 파일 이름이 포함되지 않았을 경우 기본으로 사용할 웹 페이지 파일 이름

연습문제

  • 연습문제1
    웹 서버와 클라이언트 사이에서 웹 문서를 전송하는데 사용하는 프로토콜은?
    답을 체크하세요
    정답 :
    해설 : HTTP가 Hypertext Transfer Protocol로 웹 문서를 전송하는데 사용되는 프로토콜이다. PHP는 스크립트 언어이며 NTP는 Network Time Protocol, SMTP는 Simple Mail Transfer Protocol이다.
  • 연습문제2
    APM을 구성하는 요소를 바르게 짝지은 것은?
    답을 체크하세요
    정답 :
    해설 : APM은 Apache HTTP 서버, PHP, MySQL 세 가지를 줄여서 부르는 용어이다.
  • 연습문제3
    HTTP에서 클라이언트와 서버 간에 주고받는 메시지를 각각 무엇이라고 하는가?
    답을 체크하세요
    정답 :
    해설 : HTTP에서 클라이언트와 서버 간에 주고받는 메시지는 요청(request)와 응답(response)라고 한다.
  • 연습문제4
    Apache 웹 서버의 설정 항목 중 클라이언트와 서버 간에 지속적인 연결을 생성하여 여러 번의 요청과 응답을 주고받는 것을 허용할지 여부를 결정하는 것은?
    답을 체크하세요
    정답 :
    해설 : KeepAlive가 클라이언트와 서버 간에 지속적인 연결을 허용할지 여부를 결정하는 것이다. Timeout은 클라이언트의 요청에 대한 최대 대기 시간, KeepAliveTimeout은 지속적인 연결을 유지할 최대 대기 시간, MaxKeepAliveRequests는 한 번의 지속적인 연결에서 보낼 수 있는 요청의 최대 수이다.
  • 연습문제5
    Apache 웹 서버의 설정 항목 중 자식 서버 수 관리와 직접 관련된 것은?
    답을 체크하세요
    정답 :
    해설 : StartServers가 초기에 생성하는 자식 서버 프로세스 수이므로 직접 관련되어 있다.
    Listen은 서버가 사용하는 TCP port 번호, MaxClients는 동시에 접속 가능한 클라이언트 수, MaxRequestsPerChild는 자식 서버 프로세스를 종료하기 전에 처리할 최대 요청 수이므로 자식 서버 수 관리와 직접 관련이 없다.


댓글