더북(TheBook)

웹 서버 설치하고 웹 서비스 시작하기

가상 게스트 server01에 아파치 웹 서버를 설치하고 호스트에서 웹 브라우저를 이용해서 접속해보겠습니다.

그림 8-3 가상 게스트에 웹 서버 설치하고 호스트에 접속하기

웹 서버를 운영할 게스트 server01을 시작하고 ssh로 로그인합니다.

shinjaehun@losttemple:~$ virsh start server01
shinjaehun@losttemple:~$ ssh administrator@192.168.122.201

apt-get 명령으로 apache2 패키지를 설치합니다. 설치 과정을 유심히 살펴보면 ServerName과 관련된 항목에서 오류 메시지를 확인할 수 있습니다. ServerName이 설정되지 않아 로컬 호스트를 의미하는 IP 주소 127.0.0.1을 대신 사용하겠다는 메시지입니다.

administrator@server01:~$ sudo apt-get update
administrator@server01:~$ sudo apt-get install apache2
...
 * Starting web server apache2                                               AH00558:
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
                                                                          [ OK ]
Tip

웹 서버를 시작, 재시작, 정지하는 apache2 스크립트를 사용할 때마다 같은 오류 메시지가 출력됩니다. 나중에 ServerName 항목을 설정하면 오류 메시지가 사라질 것입니다.

웹 서버는 정상적으로 실행되고 있습니다. netstat 명령을 실행하면 http 포트(80번)로 외부 접근을 기다리는 상태를 확인할 수 있습니다. 웹 서비스에 대한 요청, 결과 처리가 모두 http 포트를 통해 이루어집니다.

administrator@server01:~$ netstat -a | grep http
tcp        0       0 *:http                 *:*                 LISTEN

런레벨 편집기를 시작합니다.

administrator@server01:~$ sudo sysv-rc-conf

런레벨 2부터 5까지 웹 서버가 실행되도록 apache2 서비스를 체크합니다. q를 눌러 런레벨 편집기를 종료합니다.

그림 8-4 apache2 서비스 실행을 위한 런레벨 편집

다른 리눅스 서버 응용 프로그램과 비교해서 아파치 웹 서버의 설정 파일은 구조가 복잡한 편입니다. 아피치 웹 서버도 예전에는 다른 서버 응용 프로그램들처럼 설정 파일 하나에 모든 설정 내용을 집어넣었지만 웹 서버에 다양한 기능을 추가하다보니 설정 파일도 복잡해졌습니다. 하지만, 전체적인 구조를 이해하면 새로운 방식이 웹 서버를 관리하는 데 훨씬 더 유용하다는 사실을 알 수 있습니다.

아파치 웹 서버 설정 파일들은 /etc/apache2 디렉터리에 들어 있습니다. 중요한 파일과 디렉터리만 살펴봅시다.

아파치 웹 서버의 기본적인 설정 내용은 ‘apache2.conf’에 정의되어 있습니다.

‘ports.conf’는 웹 서버의 연결과 관련된 설정 파일입니다.

conf-available 디렉터리에 문자셋, 오류 메시지 페이지, 보안 설정과 같은 아파치 웹 서버 고급 기능을 별도의 설정 파일로 관리합니다.

이 중에서 사용자가 사용하고 싶은 모듈은 conf-enabled 디렉터리에 링크를 걸어 동작시킬 수 있습니다.

아파치 웹 서버의 추가 기능은 모듈 형태로 mods-available 디렉터리에 존재합니다.

이 중에서 사용자가 사용하고 싶은 모듈은 mods-enabled 디렉터리에 링크를 걸어 동작시킵니다.

sites-available은 가상 호스팅을 제공할 때 여러 웹 사이트에 대한 설정을 따로 보관하기 위한 디렉터리입니다.

이 중에서 사용자가 제공할 웹 사이트는 sites-enabled 디렉터리에 링크를 걸어 설정합니다.

administrator@server01:~$ ls /etc/apache2/
apache2.conf conf-enabled magic           mods-enabled  sites-available
conf-available envvars    mods-available  ports.conf    sites-enabled
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.