운영체제/Linux

Apache 웹서버에 대해서(feat. httpd.conf)

ahgle 2023. 2. 27. 17:47
728x90
반응형

안녕하세요, 아글입니다.

 

오늘은 

아파치 웹 서버 에 대해서 알아보겠습니다.

 

아파치 웹서버(Apache Webserver)

  • 아파치 소프트웨어 재단에서 제공하는 대표적인 오픈소스 HTTP 서버
  • 자체적으로도 다양한 기능을 제공하지만, 다양한 종류의 서드파티 모듈 설치를 통해 여러 기능을 사용자 환경에 맞게 추가 / 삭제가 가능
  • SSL/TLS를 비롯한 여러 보안 프로그램을 제공함으로써 보안 또한 우수한 편으로 평가됨

 

웹 서버(WebServer)

  • 웹 브라우저(크롬, Edge 등)와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML과 같은 웹 페이지를 반환하는 프로그램을 웹 서버라고 한다.

단순히 위 개념 정리로만 아파치 웹서버를 처음 접하시는 분들에게는 이해가 조금 어려울 수 있습니다.

 

초기에는 "왜 서버 내에 설치하는 프로그램 인데 '웹 서버'라고 할까? '웹 서버'는 서버 그 자체를 의미하는걸까?" 라고 생각하며 용어 자체로 인한 혼동이 왔었습니다.

 

제가 그나마 쉽게 이해한 개념은 웹 서버는 '서버(컴퓨터)' 안에 설치하는 '프로그램' 중 하나라고 생각한 것입니다.

수 많은 프로그램 중에 우리가 인터넷을 사용하여 특정 서버(컴퓨터) 안에 있는 자료(네이버 등 사이트의 내용 들)을 확인할 수 있도록 도와주는 역할의 프로그램이 바로 웹 서버 인 것입니다.

 

오늘 알아 볼 것은 수많은 웹 서버 중 하나인,  그중에서도 가장 유명한 프로그램 중 하나인 아파치 웹 서버 입니다.

 

아파치 웹 서버는 CentOS 등 redhat 계열 OS에서 아래와 같이 설치할 수 있습니다.

*서버가 외부 통신(이터넷)이 가능하다는 전제 하에

#yum install -y httpd

 

그럼 이렇게 설치한 아파치 웹서버의 기본적인 설정 값이 들어있는 httpd.conf 파일 및 기본 설정에 대해 알아보겠습니다.

 

httpd.conf 파일 기본 위치 : /etc/httpd/conf/httpd.conf

 

패키지 설치가 완료되면 /etc/httpd 에 아파치 설정 파일이 위치한 디렉터리를 확인합니다. /etc/httpd 아래 여러 디렉터리가

있습니다.

[root@test www]# ls /etc/httpd/
conf  conf.d  conf.modules.d  logs  modules  run

 

/var/www 는 웹브라우저(크롬, 엣지 등)에서 기본적으로 보게되는 데이터들이 들어가있는 기본 경로입니다.

[root@test www]# ls -l /var/www/
total 8
drwxr-xr-x 2 root root 4096 Mar 24  2022 cgi-bin
drwxr-xr-x 7 root root 4096 Dec 14 17:44 html

 

/var/log/httpd/ 는 아파치 서버의 로그 파일이 저장되는 기본 경로입니다.

 

[root@test www]# ls /var/log/httpd/
access_log           error_log

 

기본 설정을 위해 아파치 서버가 사용하는 설정 파일인 httpd.conf를 vim 명령어를 이용해 열어서 확인해보겠습니다.

[root@test www]# vim /etc/httpd/conf/httpd.conf

 

 

/etc/httpd/conf/httpd.conf 파일을 열면 볼 수 있는 기본 구성입니다.

실제로는 수많은 옵션에 대한 주석처리된 설명과 이외 다양한 설정들이 포함되어 있으나 이번 포스팅에서는 기본적인 필수 설정 값에 대해서만 알아보겠습니다.

ServerRoot "/etc/httpd"

#Listen 12.34.56.78:80
Listen 80

ServerAdmin test@test.com

ServerName wowy0211.tistory.com:80

DocumentRoot "/var/www/html"

<IfModule dir_module>
    DirectoryIndex index.html, index.php
</IfModule>

ErrorLog "logs/error_log"

CustomLog "logs/access_log" combined
  • ServerRoot : 아파치 서버가 사용할 설정 파일들이 저장될 디렉터리입니다. 
  • Listen : 아파치 서버가 사용하는 여러 네트워크 인터페이스가 있을 경우, 그 중에서 어떠 IP주소로 클라이언트의 접속을 받아들일 지를 결정합니다. #Listen 12.34.56.78:80 이라고 주석 처리 된 내용이 보이는데 이는 12.34.56.78 주소를 가진 서버의 80포트로 클라이언트(크롬 등 웹 브라우저)가 들어오도록 한다는 의미입니다. 다만 실제로 사용 시에는 웬만하면 Listen 80과 같이 포트 주소만 작성합니다. IP주소를 지정하지 않을 경우 모든 주소를 사용한다는 의미입니다.
  • ServerAdmin : 문제가 발생하는 경우 Apache 서버가 보낼 이메일 주소를 입력하는 곳입니다.
  • ServerName : 아파치 서버가 사용하는 이름과 포트를 설정합니다. DNS에서 설정된 이름을 사용하고 , 그렇지 않은 경우 이름 대신 ip를 설정할 수 있습니다. 또한 포트 번호는 반드시 기재하지 않아도 됩니다.
  • DocumentRoot : 아파치 서버가 인식할 데이터들이 저장될 디렉터리입니다. 아까 /var/www 에서 본 html 디렉터리가 이 DocumentRoot 설정때문에 기본 디렉터리가 되는 것입니다. 
  • DirectoryIndex : 클라이언트가 웹 서버 접속 시 초기 화면으로 보여줄 파일명을 지정합니다. 기본은 index.html이며 이 파일이 없는 경우 index.php 파일을 찾아서 웹 브라우저에 뿌려줍니다.
  • ErrorLog : 서버에서 에러가 발생한 경우 그것을 기록할 로그 파일을 지정합니다. 여기서 logs는 /etc/httpd/logs를 의미하며, 이 디렉토리는 /var/log/httpd 에 링크로 연결돼 있습니다. 
  • CustomLog : 아파치 서버에 접속하는 일반적인 접속 정보를 기록할 로그 파일을 지정합니다. 여기서 logs도 위와 동일합니다.

 

오늘은 이렇게 아파치 웹서버의 기본 개념과 아파치 웹서버를 구성하는 기본적인 설정 파일인 httpd.conf에 대해서 알아보았습니다. 이어지는 포스팅은 아파치 서버 서비스 시작과 PHP을 설정하는 방법에 대해서 알아보겠습니다.

 

다음 포스팅은 아래 링크에서 확인 가능합니다.

https://wowy0211.tistory.com/42

728x90