본문 바로가기

Linux/CentOS Linux 6.5

Chapter 13. Apache

Chapter 13. Apache
1. Apache
 - www(World Wide Web) Server용 소프트웨어
 - HTML, PHP 및 JSP Page가 실행 될 수 있는 환경을 제공하는 Web Server Program
 - httpd로 시작하는 Package가 필요하다.
 - 보통 DNS 설정 후 Apache Web 문서 Directory 설정과 권한 설정 후 Daemon을 재실행해 간단하게 사용할 수 있으며 다른 설정이 필요할 때 해당 설정을 
조정해 사용한다.
 - Web Server
  · Web Service를 제공하는 Server
  · Web(www) 상에 있는 Server로 Internet만 연결되어 있으면 어디서든 Web Server에 방문 가능
  · Web Server 동작

  ◦ Client가 Web Browser를 이용해 Port 80으로 Web Server에 연결
  ◦ Client가 동적 Page를 표현하는 PHP Program 요청
  ◦ Web Server가 PHP Program을 실행시킨 후 Client가 요청한 매개변수를 넘김
  ◦ Web Server가 PHP Program으로부터 생성된 결과를 읽어 들임
  ◦ PHP Program으로부터의 결과를 Web Server가 Client의 Web Browser에 전송
 - Apache 특징
  · 다양한 Platform(OS)에서 동작할 수 있도록 강력하고 유연하게 설계되어 있다.
  · 보조적 Program 다양
  · 공개된 형태로 개발
  · 다양한 상황에 따른 Service 지원
  · 동적 공유객체 지원
  · Module 사용으로 기능 추가용이
  · 유연한 설정

2. Apache 설정
 - /etc/httpd/conf/httpd.conf
  · Apache 설정 File은 설정 내용에서 Section 1, 2, 3 세 부분으로 나뉜다.
  · 설정을 바꾸고 적용시기키위해서는 항상 httpd Daemon을 재시작해줘야한다.
  · Section 1 : 전역환경 설정

  ◦ Line 44 : ServerTokens OS
   ▹ HTTP 응답 Header 설정 및 오류문 등 Server Message에 출력되는 Server에 대한 설정
   ▹ Full : Apache Server Version, OS, Module 등 모든 정보 출력
   ▹ OS : Apache Server Version, OS 정보 출력
   ▹ Minor : Apache Server의 하위 Version까지 출력
   ▹ Min : Apache Server의 모든 정보만을 출력
   ▹ Major : Apache Server의 주 Version 정보만을 출력
   ▹ Prod : Apache Server의 정보만을 보여줌
  ◦ Line 57 : ServerRoot "/etc/httpd"
   ▹ Server Root 위치인 즉, Apache가 정상적으로 동작하기 위해 필요한 여러 File(Web Server setting File, Log File, Binary File, Module 등)이 존재하
는 Directory의 위치를 설정
   ▹ Apache Web Server Program을 Source로 설치할 경우 설치 Option에 따라 Server Root는 달라지며 설정 File의 내용도 같이 달라진다.
  ◦ Line 63 : PidFile run/httpd.pid
   ▹ Pid(Process file ID)
   ▹ Apache Web Server가 실행될 때 PID를 기록하고자 하는 File을 지정
   ▹ 경로가 run/httpd.pid라면 실제 위치는 Server Root 하위인 /etc/httpd/run/httpd.pid가 된다.
  ◦ Line 68 : Timeout 120
   ▹ 시간제한으로 Client의 요청을 받고 응답해 주기까지의 시간
   ▹ Sever 요청이 많아 Server에 부담이 될 경우 시간을 적게 설정하는 것이 좋다.
  ◦ Line 74 : KeepAlive off
   ▹ 지속적인 접속 허용을 의미하며 한번 연결된 연결을 유지할 것인가를 결정
   ▹ 접속된 상태에서 여러 번의 요청을 허용할 수 있음
   ▹ on으로 설정하면 요청에 대한 처리속도는 향상되지만 Server에 부담이 될 수 있다.
  ◦ Line 81 : MaxKeepAliveRequests 100
   ▹ 최대 접속 허용 회수
  ◦ Line 87 : KeepAliveTimeout 15
   ▹ 동일한 Client가 지속적인 접속으로 다음 요청을 위해 기다리는 시간 설정
   ▹ 설정된 시간 동안 요청이 없을 경우 접속을 해제시킴
  ◦ Line 90 : ## Server-Pool Size Regulation (MPM specific)
      Line 93 : # prefo가 MPM
      Line 94 : # StartServers: number of server processes to start
      Line 95 : #MinSpareServers: minimum number of server processes which are kept spare
      Line 99 : # MaxRequestsPerChild: maximum number of requests a server process serves

   ▹ Apache Web Server를 실행할 때의 Processor의 개수 지정
   ▹ Apache 2.x 이상에서는 다중처리 Module(MPMs)라는 교체할 수 있는 동기화 Module을 지원
   ▹ 기본 8개의 자식 Processor의 개수를 가짐
   ▹ Apache Web Server 실행 시 Main Processor 1개와 StartServers에 설정된 Processor의 개수가 동작
   ▹ MinSpareServer : Apache Server는 주기적으로 점검하는데 MinSpareServer의 개수보다 적게 되면 Main Processor가 MinSpareServer에 설정된 Pr
ocessor의 개수가 동작
   ▹ MaxSpareServer : Apache Server는 주기적으로 점검하는데 MaxSpareServer의 개수보다 크게 되면 Main Processor가 MaxSpareServer에 설정
값보다 적게 하기위해 일부 Processor를 종료시킴
  ◦ Line 133 : #Listen 12.34.56.78:80
      Line 134 : Listen 80

   ▹ Service Port 설정
   ▹ Apache Web Server를 특정 IP 주소와 Port에 대해서만 연결하고자 할 때 사용
   ▹ Line 133을 Listen 192.168.1.128:8080으로 바꾸고 Line 134를 Listen 8080으로 바꾸면 192.168.1.128에서 Web Server를 동작시킬 때 Port 8080으
로 동작되며 Port 8080를 통해 Service한다.

  ◦ Line 137 : # Dynamic Shared Object (DSO) Support
   ▹ Apache Web Server는 관리자가 Module을 선택하여 Server에 포함할 기능을 결정할 수 있는 Module화 된 Program으로 Apache를 Compile 시
 httpd 실행 File에 정적으로 Module을 Compile한다.

   ▹ Module을 httpd 실행 File과 분리하여 동적 공유 객체(DSO)로 Compile한다.
   ▹ Module 추가
    ▸  LoadModule [Module 정보] [Module 위치/Module 명]
    ▸  Apache에서 지원하는 Module은 /etc/httpd/modules에 존재한다.
  ◦ Line 210 : Include conf.d/*.conf
   ▹ 추가적인 환경 File을 의미하며 RPM으로 설치한 Apache Web Server에서는 httpd.conf File과는 별개로 특정 Module들의 설정 File을 따로 만들어서
사용한다.
   ▹ Include 지시어를 통해 /etc/httpd/conf.d/ Directory안의 File을 Apache Web server가 실행될 때 설정 File로 Loading한다.
  ◦ Line 231 : User apache
      Line 232 : Group apache

   ▹ Apache Web Server의 Processor를 실행할 때 소유권을 갖게되는 사용자와 Group을 의미
   ▹ Main Processor만 root권한으로 실행되고 자식 Processor는 Apache 권한으로 실행된다.
  · Section 2 : Main Server 환경 설정

  ◦ Line 251 : ServerAdmin root@localhost
   ▹ Server 관리자 Mail 주소를 적는 지시어로 Server에 문제가 생겼을 경우 System 관리자에게 E-mail을 보낼 수 있도록 설정하는 지시어
   ▹ Mail주소를 써넣어놨다고 해서 무조건 실행되는 것은 아니며 다른 Mail Setting이 필요하다.
  ◦ Line 265 : #ServerName www.example.com:80
      Line 274 : UseCanonicalName off
   ▹ Server의 이름은 Client에게 다시 돌려 보내줄 Host 이름으로 설정하며 DNS에 등록된 이름을 사용하거나 IP주소를 사용한다.
  ◦ Line 281 : DocumentRoot "/var/www/html"
   ▹ 기본적인 Apache Web Server의 Web 문서 위치를 지정하는 지시어
   ▹ 다른 Directory에 Server File이 존재할 때 그 위치를 적어 지정하면 바뀐다.
  ◦ Line 291 :  <Directory />
      Line 292 :      Option FollowSymLinks
      Line 293 :      AllowOverride None
      Line 294 :  <Directory>

   ▹  Apache Server가 접근하는 각각의 Directory에 대해서 어떠한 Service나 기능을 사용할 수 있도록 허용, 거부하는 지시어
  ◦ Line 366 :      UserDir disable
      Line 370 :     #UserDir public_html

   ▹ 사용자 Directory를 생성해 사용할 때 바꾸는 지시어들로 Line 366을 주석처리하거나 지우게 되면 의 출처가 사용자 Directory로 된다.
   ▹ Line 370의 주석을 제거하면 사용자 Directoryso의 public_html Directory가 Apache Web Server의 Web 문서 출처가 된다.
  ◦ Line 371 :  #Alias "/user" "/home/user/public_html"
   ▹ Alias로 별칭을 만들어주면 길게 써야할 주소도 간편하게 줄인 주소로 사용할 수 있다.
   ▹ 지시어 : Alias "[Alias Directory Name]" "[Directory Location]"
  · Section 3 : Virtual Hosts

  ◦ 가상 Host에 대한 설정으로 한 System에서 여러 개의 Domain과 Host 이름을 구분하여 Web Service가 가능하게 하는 설정
  ◦ Virtual Hosting의 종류
   ▹ 이름 기반의 Virtual Hosting
    ▸  Name Server가 각 Host명이 올바른 IP 주소로 대응하도록 가상 Host 설정
    ▸  하나의 IP 주소를 가지고 여러 Host에 대해서 Web Service 제공
   ▹ IP 기반의 Virtual Hosting
    ▸  하나의 Apache Web Server에서 물리적인 Network Card에 여러 개의 IP 할당
    ▸  각 Host가 서로 다른 IP 주소를 이용할 수 있도록 하는 방식

 


'Linux > CentOS Linux 6.5' 카테고리의 다른 글

Chapter 15. PHP & Zero Board  (0) 2015.08.07
Chapter 14. MySQL  (0) 2015.08.07
Chapter 12. DNS(Domain Name Service)  (0) 2015.08.07
Chapter 11. NFS(Network File System)  (0) 2015.08.07
Chapter 10. FTP Service - Vsftpd  (0) 2015.08.07