아파치 도메인 설정 (Apache Virtual Host) > 서버

본문 바로가기

서버

마이홈
쪽지
맞팔친구
팔로워
팔로잉
스크랩
TOP
DOWN

[일반] 아파치 도메인 설정 (Apache Virtual Host)

profile_image
관리자
2024-10-05 15:02 25 0
  • - 첨부파일 : 20241005150214.png (22.7K) - 다운로드

본문

Apache Virtual Host 설정의 간단한 예시를 보여드리겠습니다. 


Apache Virtual Host는 여러 개의 웹사이트를 하나의 서버에서 호스팅할 수 있게 해주는 설정입니다. 


1. Apache 설정 파일 위치


일반적으로 Virtual Host 설정 파일은 `/etc/httpd/conf/httpd.conf` 또는 `/etc/httpd/conf.d/vhost.conf`에 있습니다. 혹은 `/etc/httpd/sites-available/`와 같은 경로에서 설정할 수 있습니다.


2. 기본 Virtual Host 설정 예시


여기서는 도메인 이름을 example.com으로 가정하고, 이 도메인에 대한 Virtual Host 설정 예시를 보여드립니다.



<VirtualHost *:80>

    ServerAdmin [email protected]

    DocumentRoot /var/www/example.com/public_html

    ServerName example.com

    ServerAlias www.example.com


    <Directory /var/www/example.com/public_html>

        Options Indexes FollowSymLinks

        AllowOverride All

        Require all granted

    </Directory>


    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log

    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined

</VirtualHost>



3. 설명


- ServerAdmin: 서버 관리자의 이메일 주소를 설정합니다.

- DocumentRoot: 웹사이트의 파일들이 위치한 디렉토리입니다. 여기에 실제로 웹사이트의 HTML, PHP 파일들이 저장됩니다.

- ServerName: 이 Virtual Host가 응답할 도메인 이름을 설정합니다. (예: `example.com`)

- ServerAlias: 추가적으로 응답할 다른 도메인 이름이나 서브도메인을 설정합니다. (예: `www.example.com`)

- Directory: `DocumentRoot`에 설정된 디렉토리의 접근 권한을 정의합니다.

    - Options: 허용할 옵션들 (`Indexes`, `FollowSymLinks` 등)

    - AllowOverride: `.htaccess` 파일을 통해 설정을 덮어쓸 수 있게 할지 결정합니다.

    - Require all granted: 모든 클라이언트가 디렉토리에 접근할 수 있도록 허용합니다.

- ErrorLog: 에러 로그 파일의 경로를 지정합니다.

- CustomLog: 접근 로그 파일의 경로를 지정하고 로그 형식을 설정합니다.


4. HTTPS (SSL) 설정 예시


HTTPS(SSL)를 사용하려면 `*:443` 포트를 사용해야 하고, SSL 인증서를 설정해야 합니다.



<VirtualHost *:443>

    ServerAdmin [email protected]

    DocumentRoot /var/www/example.com/public_html

    ServerName example.com

    ServerAlias www.example.com


    SSLEngine on

    SSLCertificateFile /etc/ssl/certs/example.com.crt

    SSLCertificateKeyFile /etc/ssl/private/example.com.key

    SSLCertificateChainFile /etc/ssl/certs/chain.pem


    <Directory /var/www/example.com/public_html>

        Options Indexes FollowSymLinks

        AllowOverride All

        Require all granted

    </Directory>


    ErrorLog ${APACHE_LOG_DIR}/example.com_ssl_error.log

    CustomLog ${APACHE_LOG_DIR}/example.com_ssl_access.log combined

</VirtualHost>



- SSLEngine on: SSL을 활성화합니다.

- SSLCertificateFile: SSL 인증서 파일 경로입니다.

- SSLCertificateKeyFile: SSL 개인 키 파일 경로입니다.

- SSLCertificateChainFile: 인증서 체인 파일 경로입니다.


5. 설정 적용


설정 파일을 수정한 후에는 Apache를 다시 시작하거나 새로고침해야 합니다.



# CentOS/Red Hat

sudo systemctl restart httpd



# Ubuntu/Debian

sudo systemctl restart apache2



6. Virtual Host 활성화 (Ubuntu/Debian)


만약 `sites-available`에 설정 파일을 저장한 경우, 다음 명령어로 설정을 활성화합니다.



sudo a2ensite example.com.conf

sudo systemctl reload apache2



이 Virtual Host 설정을 통해 도메인마다 다른 웹사이트를 하나의 Apache 서버에서 호스팅할 수 있습니다.

댓글목록0

등록된 댓글이 없습니다.

댓글쓰기

적용하기
자동등록방지 숫자를 순서대로 입력하세요.
게시판 전체검색