오픈소스 플랫폼에서 웹사이트를 호스팅하고 있다면, 해당 플랫폼은 대부분 서버급 리눅스 배포판 위에서 기본 웹 서버로 Apache를 사용하고 있을 가능성이 높습니다. 웹 서버 설정 구조에 중요한 변경 사항을 적용한 후에는 운영체제가 아니라 웹 서버 자체를 재시작해야 합니다. Apache를 재시작하는 절차는 서버의 운영체제에 따라 달라지므로, 자신의 환경에 맞는 방법을 정확히 알아두는 것이 중요합니다.
시작하기 전에 확인할 사항
서버를 재시작하려면 Apache가 실행 중인 운영체제에 대한 셸(shell) 접근 권한이 필요합니다. 전용 가상 사설 서버(VPS)를 사용하는 경우, 브라우저를 통해 셸 프롬프트에 로그인하거나, 로컬 컴퓨터에서 SSH(Secure Shell) 세션을 시작해 접속할 수 있습니다. 만약 서버에 로그인해 sudo와 같은 방식으로 관리자 권한 명령을 실행할 수 없다면, Apache 서버를 재시작할 수 없습니다. 이 경우에는 시스템 관리자에게 도움을 요청해야 합니다.
리눅스에서 서버 다루기
대부분의 리눅스 배포판은 핵심 서비스를 제어하는 일련의 셸 스크립트를 지원합니다. 이 스크립트들은 다음과 같은 인자(argument)에 반응하며, 인자에 따라 동작 방식이 결정됩니다.
- start: 서비스를 시작합니다.
- stop: 서비스를 종료합니다.
- restart: 현재 사용 여부와 관계없이 서비스를 재시작합니다.
- reload: 서비스를 우아하게(gracefully) 재시작하며, 가능한 경우 기존 연결을 유지합니다.
팁: 가능하다면 restart 대신 reload를 사용하는 것이 좋습니다. reload는 서버 프로세스를 실제로 종료하지 않고, 현재 설정 파일을 다시 읽어 들이는 방식으로 재초기화하기 때문입니다. 반면 전체 restart는 설정 파일을 다시 초기화할 뿐만 아니라, 서버에 현재 연결된 모든 클라이언트의 연결을 끊어버립니다.
서버 서비스를 재시작하는 방법은 크게 세 가지입니다.
첫 번째는 /etc/init.d/ 디렉터리의 스크립트를 사용하는 방법으로, Debian 8.x 이전 버전이나 Ubuntu 15.04 이전 버전을 실행하는 서버에서 일반적으로 사용됩니다. 두 번째는 systemctl 명령을 사용하는 방법입니다. 세 번째는 어떤 환경에서도 사용할 수 있는 만능(failsafe) 방법인 apachectl을 활용하는 것입니다.
방법 1: init.d 스크립트 사용하기
/etc/init.d/ 스크립트를 사용하는 리눅스 배포판에서는 다음 세 가지 명령 중 하나로 Apache를 재시작할 수 있습니다.
/etc/init.d/apache2 restart
sudo /etc/init.d/apache2 restart
sudo service apache2 restart
우아한 재시작(graceful restart)을 수행하려면 restart를 reload로 바꿔 입력하면 됩니다.
CentOS 및 RHEL 6.x 이하 버전 서버에서는 service 스크립트를 사용하되, 서비스 이름을 apache2가 아닌 httpd로 지정해야 합니다.
service httpd restart
방법 2: systemctl 사용하기
Debian 8.x, Ubuntu 15.04, CentOS/RHEL 7.x 이상의 최신 운영체제에서는 systemd 기반의 systemctl 명령을 사용합니다. 다음 명령을 실행하세요.
systemctl restart httpd.service
방법 3: apachectl 사용하기
apachectl 스크립트는 특정 배포판에 종속되지 않는 범용적인 방법을 제공합니다. 이 스크립트를 실행하려면 반드시 root 권한으로 실행해야 합니다.
sudo apachectl -k restart
sudo apachectl -k graceful
graceful 옵션은 앞서 설명한 reload 방식과 유사하게, 기존 연결을 유지하면서 설정을 다시 적용합니다.
정리하면, 구형 배포판은 init.d 스크립트, 최신 배포판은 systemctl, 그리고 배포판과 무관하게 확실한 방법이 필요하다면 apachectl을 사용하는 것이 가장 안전합니다. 서비스 중단을 최소화하고 싶다면 항상 reload 또는 graceful 옵션을 우선적으로 고려하세요.