본문 바로가기
Back-End

웹 서버의 개념 Apache2 웹 서버 및 관련 기능 (2)

by blackjack_96 2022. 2. 26.

지난 시간에 이어

apache2의 설정 및 기록과 관련된 사항을 포스팅하도록 하겠습니다.

 

1. apache2의 Document Root개념

apache2가 실행된 상태에서

http://localhost/index.html

웹 브라우저를 열어 위 url을 주소창에 쳐 봅시다.

 

위 url의 의미는 다음과 같습니다.

http://localhost/index.html

- "localhost에서 운영되는 Web Server에게 index.html이라는 파일을 요청"하는 것입니다.

그러면 Web Server는 자신의 컴퓨터 어딘가에 있는 index.html이라는 파일을 찾아서 응답해 줍니다.

그리고 그곳에 index.html이라는 파일이 없다면, HTTP 404 Not Found를 응답할 것입니다.

 

그러면 도대체 Web Server는 이 index.html이라는 파일을 어디서 찾아서 클라이언트에게 주는 것일까요??

이걸 알기 위해서는 apache2의 "DocumentRoot 설정" 이라는 개념을 파악해야 합니다.

 

cd /etc/apache2/apache2.conf

리눅스의 디렉터리 중 하나인 /etc 디렉토리에는

여러 실행파일들의 설정과 관련된 내용이 담겨 있는 소중한 디렉토리 입니다.

 

위 apache2.conf라는 파일 내에는

apache2와 관련된 여러 설정사항들이 담겨 있습니다.

내용을 한번 확인해 보겠습니다.

 

vim apache2.conf

위 파일을 열어보니

맨 마지막에 이런 내용이 있습니다.

 

"sites-enabled 디렉토리 내의 모든 conf 확장자 파일에 있는 것들을 나의 설정으로 사용한다"는 의미입니다.

 

그렇다면 sites-enabled 디렉토리로 이동하여

어떤 파일들이 있는지 확인하여 보겠습니다.

 

cd sites-enabled
ls -al

그랬더니,

000-default.conf라는 설정파일이 존재합니다.

이를 확인해보면

DocumentRoot 항목에 /var/www/html이라는 디렉토리 주소가 나와있습니다.

이것이 바로 우리가 궁금했던 모든 것에 대한 정답입니다.

 

만약 http://localhost/index.html

이라는 요청이 웹 서버로 들어오면

index.html이라는 파일을

DocumentRoot(/var/www/html)에서 찾아 읽어서 그 내용을 클라이언트에게 응답해주는 것이죠.

 

이 설정파일의 DocumentRoot항목을 내가 원하는 디렉토리로 변경이 가능합니다.

그러면 그곳을 기준으로하여

클라이언트가 요청한 파일을 찾게 되는 것입니다.

 

2. apache2 error.log와 access.log

apache2 웹 서버에 누군가가 접속하면 그 기록이 모두 남습니다.

그리고 apache2 웹 서버 프로그램이 동작 중에 에러가 발생하여 정지된다면, 그에 대한 기록도 모두 남습니다.

어디에?!

 

어디에 기록이 남는지 궁금하다면

설정 파일에 그에 대한 내용이 나와 있을 것이니

찾아보면 되는 것이죠~

밑에서 3번째, 4번째 줄을 보면

Error와 관련된 기록은 ${APACHE_LOG_DIR}/error.log

누가 접속하는지에 관련된 기록은 ${APACHE_LOG_DIR}/access.log

에 기록된다고 설정되어 있네요.

 

여기서 ${APACHE_LOG_DIR}이란 /var/log/apache2입니다.

 

Error와 관련된 기록은 /var/log/apache2/error.log

누가 접속하는지에 관련된 기록은 /var/log/apache2/access.log에 기록됩니다.

 

웹 서버가 동작하다가 갑자기 꺼졌다?

어떤 에러가 일어났는지 궁금하다면 /var/log/apache2/error.log를 찾아보면 되는 것입니다.

 

그리고 어떤 사용자가 나에게 접속해오는지 알고 싶다.

그럴때 실무적으로 많이 사용되는 명령어를 보여드리겠습니다.

 

tail -f /var/log/apache2/access.log

/var/log/apache2/access.log파일의 맨 마지막 라인을 출력하라,

그리고 나서 명령 수행을 종료하지 말고 계속 그 파일을 감시해라,

감시하다가 access.log 내용에 무언가가 추가 된다면(새 클라이언트가 HTTP Request를 보낸다면)

그 추가된 내용을 콘솔에 출력하여라...

 

이것저것 apache2와 관련하여 많이 알아보았는데요,

중요한 건 이것입니다.

"어떠한 웹 서버 프로그램을 이용하던지간에

그 설정파일은 /etc 디렉토리에 존재한다.

그리고 그 설정파일을 읽어서 

웹 서버 프로그램이 어떻게 동작하는지 그 원리를 알 수가 있다"

 

이상으로 apache2 웹 서버프로그램의 기본 이용 방법에 대한 포스팅을 마치겠습니다.

감사합니다. 

 

 

 

'Back-End' 카테고리의 다른 글

웹 서버의 개념 Apache2 웹 서버 및 관련 기능 (1)  (0) 2022.02.26