본문 바로가기
프로그램 활용/웹서버

APACHE – 아파치 소프트웨어 재단에서 관리하는 HTTP 웹서버

by 3604 2023. 12. 2.
728x90

출처: https://aury524.tistory.com/22#google_vignette

 

1. 소스 패키지 설치 단계 (configure / make / make install)

configure : 설치 전에 여러가지 옵션을 지정해주고 컴파일 환경을 검사하는 단계

make : 미리 정해진 스크립트를 따라 소스 코드를 컴파일 해주는 도구

make install : 컴파일이 완료된 뒤 설치

 

 

2. 필요한 라이브러리 설치 : apr, apr-util, pcre, apache

Apache

정적 파일의 웹서비스를 담당하는 웹서버

APR(아파치 포터블 런타임), APR-util

Apache가 설치된 OS에 관계 없이 일정한 동작을 하기 위해 필요한 라이브러리

아파치 HTTP 서버의 핵심 고급 IO 기능에 대한 접근

OS 수준의 기능(난수 생성, 시스템 상태)

기본 프로세스 처리(공유 메모리, NT 파이프와 유닉스 소켓) 등 많은 용도로 사용

PCRE(Perl Compatible Regular Expressions)

펄 호환 정규 표현식으로 정규식 패턴 일치를 구현하는 함수의 집합

 

 

3. apache 소스 설치 과정

※ wget : 웹 서버로부터 콘텐츠를 가져오는 컴퓨터 프로그램

 

 

apr 설치

http://mirror.23media.de  웹 사이트에서 apr-1.6.2.tar.gz 파일을 가져옴

 

현재 작업 중인 위치에서 새로운 디렉터리를 생성하고 그안에 압축을 해제

 

 

압축 해제한 apr-1.6.2의 디렉토리로 이동 한 뒤 현재 디렉토리에서 configure라는 이름을 갖는 스크립트 파일을 찾고 실행(소프트웨어가 설치될 컴퓨터의 의존성을 체크하는 것이 목적)

 

 

configure 스크립트가 생성한 Makefile 을 이용해서 동작

 

필요한 모든 요소들이 생성되고 난 뒤 시스템 상에서 정해진 위치에 파일 복사(최종 디렉토리에 복사)

 

 

 

apr-util 설치

http://mirror.23media.de  웹 사이트에서 apr-util-1.6.0.tar.gz 파일을 가져옴

 

 

현재 작업 중인 위치에서 새로운 디렉터리를 생성하고 그안에 압축을 해제

 

압축 해제한 apr-util-1.6.0의 디렉토리로 이동 한 뒤 현재 디렉토리에서 configure라는 이름을 갖는 스크립트 파일을 찾고 실행

 

 

configure 스크립트가 생성한 Makefile 을 이용해서 동작

 

설치가 완료 된 후 최종 디렉토리에 복사

 

 

 

 

 

PCRE 설치

 

http://ftp.pcre.org  웹 사이트에서 pcre-8.41.tar.gz 파일을 가져옴

 

현재 작업 중인 위치에서 새로운 디렉터리를 생성하고 그안에 압축을 해제

 

 

압축 해제한 pcre-8.41의 디렉토리로 이동 한 뒤 현재 디렉토리에서 configure라는 이름을 갖는 스크립트 파일을 찾고 실행

 

 

configure 스크립트가 생성한 Makefile 을 이용해서 동작

 

 

설치가 완료 된 후 최종 디렉토리에 복사

 

 

 

 

Apache 설치

 

http://archive.apache.org  웹 사이트에서 httpd-2.4.38.tar.gz 파일을 가져옴

 

 

현재 작업 중인 위치에서 새로운 디렉터리를 생성하고 그안에 압축을 해제

 

압축 해제한 httpd-2.4.38 의 디렉토리로 이동 한 뒤 현재 디렉토리에서 configure라는 이름을 갖는 스크립트 파일을 찾고 실행

 

컴파일 내용

--prefix=/usr/local/apache/

: 컴파일된 프로그램을 /usr/local/apache/ 위치에 설치

 

--enable-so

: mod so가 제공하는 DSO 기능을 사용

 

--enable-rewrite

: mod rewrite가 제공하는 규칙기반 URL 조작 기능을 사용

 

--with-apr=/usr/local/apr

: httpd 소스 배포본에 포함된 APR 자동으로 웹서버와 같이 컴파일

 

--with-apr-util=/usr/local/apr-util

: httpd 소스 배포본에 포함된 APR-util 자동으로 웹서버와 같이 컴파일

 

--enable-ssl

: mod_ssl이 제공하는 SSL/TLS 기능을 사용한다.

 

--with-ssl=/usr/local/openssl

: mod_ssl 을 사용하는 경우 configure는 설치된 OpenSSL을 찾음

 

--enable-mods-shared=most

: 대부분의 모듈을 DSO 모듈로 컴파일 함

 

--with-pcre=/usr/local/pcre

: httpd 소스 배포본에 포함된 pcre 자동으로 웹서버와 같이 컴파일

 

--with-mpm=prefork

: apache 2.4 버전은 기본 event 형식으로 해당 옵션 제외

 

configure 스크립트가 생성한 Makefile 을 이용해서 동작

 

설치가 완료 된 후 최종 디렉토리에 복사

 

 

httpd 서비스 실행 확인 /  리눅스 시작 시 httpd 서비스 자동 실행

 

iptables(방화벽) 에서 apahce(80 포트) 오픈
/etc/init.d/iptables reload 로 적용

 

 

apache 접속 확인

 

 

 

 

 

 

4. apache configure 확인

--config-cache

: --cache-file=config.cache와 같음

 

--cache-file=FILE

:검사 결과를 FILE 파일에 캐싱함, 기본값은 검사결과를 기록 X

 

--no create

: configure 스크립트를 정상적으로 실행하지만, 출력파일은 만들지 X, 컴파일을 위한 makefile을 만들기 이전에 검사 결과 확인에 유용

 

--quite

: 실행중에 checking ... 문구 출력 X

 

--srcdir=DIR

: DIR 디렉토리를 소스파일 디렉토리로 지정

 

--prefix=/usr/local/apache

: 아키텍쳐에 독립적인 파일을 /usr/local/apache 설치

 

--enable-MODULE=shared

: 해당 모듈을 DSO 모듈로 컴파일함

 

--enable-MODULE=static

: 포함하는 모듈은 기본적으로 정적으로 링크

 

 

5. apache 서버 prefork, worker 방식

prefork 방식

미리 포크(fork)

자식 프로세스들을 일정량 미리 준비해두는 방식

프로세스당 스레드 1

자식 프로세스는 최대 1024개까지 가능

스레드간 메모리 공유 안함(독립적이라 안정적, 메모리 사용 많음)

StartServers : 아파치 시작시 생성되는 기본 프로세스 개수

MinSpareServers : 최소 프로세스의 개수

MaxSpareServers : 최대 프로세스의 개수

MaxClients : 아파치 시작시 최대로 실행할 자식프로세스의 개수

 

 

worker 방식

프로세스 당 스레드 여러 개

메모리 공유 사용(메모리 사용량 적음, 통신량 많은 서버에 적절, 리소스 경합 주의 필요)

StartServers : 아파치 시작시 생성되는 기본 프로세스 개수

ServerLimit : 최대 실행가능한 프로세스 개수

MaxClients : 최대동시접속자수

MinSpareThreads : 최소로 유지할 쓰레드 개수

MaxSpareThreads : 최대로 유지할 쓰레드 개수

ThreadsPerChild : 하나의 자식프로세스가 가질 수 있는 쓰레드 개수

MaxRequestsPerChild : 자식프로세스가 살아있는동안 요청을 받을 개수

728x90