본문 바로가기

Framework/Apache

[ Apache ] a2ensite - 가상 호스트 설정하기

반응형

Apache2의 sites-available 디렉토리는 웹 서버에서 사용할 수 있는 가상 호스트 설정 파일들을 저장하는 곳입니다. 이 디렉토리 안의 설정 파일들은 서버에 여러 개의 웹사이트를 호스팅할 때 각 사이트의 설정을 정의합니다. 이 디렉토리의 설정 파일들은 서버에 바로 적용되지는 않으며, 활성화 시키기 위해서는 추가적인 명령이 필요합니다.

1. 가상 호스트(Virtual Hosts):

  • 가상 호스트는 Apache2가 여러 도메인이나 사이트를 하나의 서버에서 호스팅할 수 있도록 해주는 설정입니다.
  • 각 가상 호스트는 서버의 특정 IP 주소와 포트, 또는 도메인 이름을 기반으로 트래픽을 처리합니다.
  • sites-available 디렉토리에는 이러한 가상 호스트 설정 파일들이 위치하며, 각 파일은 보통 특정 도메인에 대한 설정을 정의합니다.

2. 설정 파일의 형식:

  • 설정 파일의 이름은 보통 도메인 이름을 따릅니다 (예: example.com.conf).
  • 각 파일에는 <VirtualHost> 블록이 포함되어 있으며, 이 블록 안에 서버의 루트 디렉토리, 로그 파일 위치, 그리고 도메인과 관련된 기타 설정이 정의됩니다.
  • 예시:
   <VirtualHost *:80>
       ServerAdmin webmaster@example.com
       ServerName example.com
       ServerAlias www.example.com
       DocumentRoot /var/www/example.com
       ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
       CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
   </VirtualHost>
  • ServerAdmin: 관리자 이메일 주소를 정의합니다.
  • ServerName: 기본 도메인 이름을 설정합니다.
  • ServerAlias: 추가 도메인 또는 서브도메인 이름을 설정합니다.
  • DocumentRoot: 해당 도메인의 웹 파일이 위치하는 루트를 정의합니다.
  • ErrorLogCustomLog: 에러와 액세스 로그 파일의 위치를 설정합니다.

3. 사이트 활성화와 비활성화:

  • sites-available 디렉토리에 있는 설정 파일은 기본적으로 서버에서 활성화되지 않습니다. 사이트를 활성화하기 위해서는 a2ensite 명령을 사용합니다.
  • 예를 들어, example.com.conf 파일을 활성화하려면 다음 명령을 사용합니다:
   sudo a2ensite example.com.conf
  • 이 명령은 sites-available 디렉토리에 있는 설정 파일의 심볼릭 링크를 sites-enabled 디렉토리에 생성하여 Apache2가 해당 사이트를 인식하고 처리하도록 합니다.
  • 비활성화하려면 a2dissite 명령을 사용합니다:
   sudo a2dissite example.com.conf

4. 설정 파일 변경 후 재시작 또는 다시 로드:

  • 설정 파일을 수정하거나 새로운 사이트를 활성화/비활성화한 후에는 Apache2 서비스를 다시 로드하거나 재시작해야 합니다.
  • 서비스 다시 로드: 설정 변경 사항을 반영하면서도 연결된 세션을 유지합니다.
   sudo systemctl reload apache2
  • 서비스 재시작: 모든 세션을 종료하고 서버를 다시 시작합니다.
   sudo systemctl restart apache2

5. HTTPS 설정:

  • HTTPS를 설정하려면 443 포트를 사용하는 가상 호스트 블록을 설정해야 합니다. SSL 인증서를 지정하고, 필요한 모듈(mod_ssl)을 활성화해야 합니다.
  • 예시:
   <VirtualHost *:443>
       ServerAdmin webmaster@example.com
       ServerName example.com
       DocumentRoot /var/www/example.com
       SSLEngine on
       SSLCertificateFile /etc/ssl/certs/example.com.crt
       SSLCertificateKeyFile /etc/ssl/private/example.com.key
   </VirtualHost>

sites-available 디렉토리의 설정 파일을 통해 Apache2는 다양한 도메인과 서브도메인을 효율적으로 관리할 수 있습니다. 각 설정 파일을 통해 사이트별로 다르게 설정하고 관리할 수 있습니다.

반응형