3.27 (화) - Linux Server 이론 - Apache web 서버

Apache Web Server

◎ HTTP : Hyper Text Transfer Protocol
  → Web application layer protocol
◎ Client - Server model

HTTP 1.0  : connection 마다 1개의 오브젝트 전송
HTTP 1.1   여개의 오브젝트를 전송할 수 있음

HTTP 1.1 에서는 1.0도 사용가능


◎ Apache
  - 설명...pdf 파일 참조

◎ 설치 과정
  1)  httpd-2.2.32.tar.gz 버전을 /usr/local/ 에 다운받는다.
→ /usr/local/ 에 설치하는 프로그램은 시스템 안에서 사용하는 것이 아닌 공유하여 사용할 
  프로그램이다.
gget http://ftp.apache-kr.org/httpd/httpd-2.2.32.tar.gz
  2)  #cd /usr/local/
  3)  # tar xvfz httpd-2.2.32.tar.gz
→ 항상 디렉토리 단위로 압축 / 압축풀기 해야 함.
  4)  # cd ./httpd-2.2.32
  5)   #./configure --prefix=/app/apache --enable-so
  6)  # make
  7)  # make install
→ configure , make, make install 순서로 컴파일, 요즘 쓰이는 cmake 방법은 여기서는 사용하지 않음.
→ configure에서 컴파일 방식을 미리 지정
→ 요즘에는 configure 에서 쓰는 옵션이 많이 줄었다 
  (예전에는 모든 기능을 다 추가했어야 했다 1.버전에서)
→ 2.버전에서는  자동 모듈이 적용되어 있음.
dll (dynamic linking library 공용 링크 파일) 어떤 프로그램이 쓰는지 알 수 없으므로, uninstall 하더라도 삭제 되지 않음. 
단점 : 지저분함 , 장점 : 공통적인 모듈이 하나만 설치되면 여러 곳에서 사용할 수 있음.
→ --prifix : 프로그램이 설치되는 디렉토리
→ --enable-so 명령어

* compile 을 통한 설치, yum 패키지로 지원하지 않음 (보안 상)

◎ 주요 구성 파일
• 실행 데몬 : /app/apache/bin/httpd
 관리 스크립트 : /app/apache/bin/apachectl
 설정 파일 : /app/apache/conf/httpd.conf
  - 처음은 4개였음, 1개로 줄임, 파일이 너무 커서 불편, .... ? (이후 설명)
 초기 서비스 파일 : /app/apache/htdocs/index.html
  - 처음에 웹 연습할 때 삭제하라했던 그 파일

• 컴파일 옵션에 따라 달라질 수 있음

 추가 설정
  - /etc/hosts 파일에 IP 서버의 도메인 명을 입력해준다.

 Apache 서버 구동
# /app/apache/bin/apachectl start (stop | restart)


◎ httpd.conf 파일의 구문 점검
     # /app/apache/bin/httpd -t
       • httpd.conf 파일의 문법상의 오류를 찾아준다.

       • “Syntax OK” : 오류 없음

◎ 3개의 섹션으로 구분
     • 전역 환경 설정 부분
     • 기본 서버 구성

     • 가상 호스트 부분

◎ Web – httpd.conf(전역 환경 설정)
     • ServerRoot “/app/apache”
       - 웹서버의 설정파일, 로그파일 등이 저장되는 최상위 디렉토리
     • Timeout 120
       - 서버와 클라이언트의 연결시에 아무런 메시지가 없을 때에 오류로 처리되는 초단위 시간
     • MaxClients 150
       - 접속 가능한 최대 client 수
       → 이 설정이 150 대의 client 만을 수용한다는 것은 아님. 
          ( 웹은 데이터를 읽어들이면 세션을 유지할 필요가 없기 때문 )
     • Startservers 20
       - 초기 서버 프로세스의 수
     • MinSpareServers/MaxSpareServers
       - 대기 상태의 프로세스 수
     • ServerName [명칭]
       - DNS나 hosts 파일에 등록된 이름을 지정한다.

◎ Web  httpd.conf(기본 서버 구성)
     • ServerAdmin root@localhost
       - 관리자의 메일주소.
     • DocumentRoot /app/apache/htdocs
       - 웹서버의  디렉토리
        → web master가 app 디렉토리에 접근할 수 없게 해야 함
        → 웹 마스터가 접근 가능한 디렉토리 경로로 수정.
        → 홈페이지를 올리고 내리는 건 웹 마스터의 역할
        → '웹마스터'라는 이름으로 통일한 계정을 생성하자.
     • DirectoryIndex index.html index.java index.php
       - 메인페이지 파일명
      ErrorLog logs/error_log
       - 웹서버에 문제가 발생시에 에러를 기록하는 로그파일.
       → 상대경로 - ServerRoot가 기준 디렉토리
      CustomLog logs/access_log combind
       - 외부에서 접근한 기록에 대한 로그파일
       → 그냥은 읽지못함 / 읽는 프로그램은 아파치 홈페이지에 존재
      UserDir public_html
       - 개인 홈디렉토리 지정

     • <Directory /app/apache/htdocs </Directory>
       - 웹서버는 디렉토리 단위로 설정
       → 모든 디렉토리는 기본적으로 접근하지 못하게 설정되어 있음.
ex) 디렉토리별 접근 권한 따로 설정해주어야 함.
<Directory "/app/apache/htdocs">
Options Indexes FollowSymLinks (바깥에서도 접근 가능하도록 SymLinks 설정)
AllowOverride None (인증 시스템을 사용할 수 있게 해줌 - 현재는 사용치 않음)
Order allow,deny (순서 : allow 먼저하고, deny 적용)
Allow from all (모두 접근 가능)
</Directory>

     • option 항목
      - ALL : 가능한 모든 옵션을  사용한다.
      - None : 아무런 옵션도 없다.
      - Indexes : 메인 페이지가 없는 경우 파일 목록을 보여준다.
      - FollowSymLinks : 디렉토리의 심볼릭 링크를 이용한다.
      - ExecCGI : CGI 실행한다.
      - 

      AllowOverride 항목
      - 디렉토리에 대한 apache 레벨에서의 접근 제한
      - 사용자 인증 파일인 .htaccess 파일 사용여부
      - 현재 인증은 apache 레벨에서 구현하지 않는다.

      Order 항목
       - 접근 권한 적용 순서
     ex)
Order deny, allow
Deny from all
Allow from 192.168.123.
  - 192.168.123. 으로 시작하는 IP 제외하고 모든 접속을 막는다.

-- 내일은 Web Master(WM) 계정을 생성하고 WM이 다루는 웹 파일을 시스템과 분리하는 실습 예정 --

댓글

이 블로그의 인기 게시물

Linux Server - FTP 실습 (2 / 2) : 사용자 제한 ( ftpuser / user_list )

전자서명 개념

3.27 (화) - Network (패킷 통신 - 4가지 지연)