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에 설정된 Processor의 개수가 동작
▹ 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 |