아파치 가상호스트(Virtualhost) 설정

아파치 설치 및 SSL/TLS 설정 후 아파치의 가상호스트를 설정하는 방법을 알아보겠습니다.

아파치의 기본 설정이 안되어 있으면 아래 링크를 참고하여 설정을 마무리해주세요.

아파치 설치

아파치 SSL/TLS설정


1. 기본 디렉토리 구조 생성

각 가상호스트를 위한 디렉토리 생성 및 테스트용 index.html 파일 생성후에 각 호스트 파일의 권한 설정을 진행.

가상 호스트 디렉터리 구조 생성
# 각 가상호스트를 위한 디렉토리 생성
mkdir -p /var/www/site1
mkdir -p /var/www/site2

# 테스트용 index.html 파일 생성
echo "Welcome to Site 1" | sudo tee /var/www/site1/index.html
echo "Welcome to Site 2" | sudo tee /var/www/site2/index.html

# 권한 설정
chown -R apache:apache /var/www/site1
chown -R apache:apache /var/www/site2
chmod -R 755 /var/www/site1
chmod -R 755 /var/www/site2

2. 가상호스트 설정 파일 생성

가상 호스트 설정파일 수정을 진행

# 설정 파일 생성
nano /etc/httpd/conf.d/vhost.conf
# 첫 번째 가상호스트
<VirtualHost 172.16.117.120:80>
    ServerAdmin webmaster@site1.com
    DocumentRoot "/var/www/site1"
    ServerName site1.local
    ErrorLog "logs/site1-error_log"
    CustomLog "logs/site1-access_log" combined
    
    <Directory "/var/www/site1">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

# 두 번째 가상호스트
<VirtualHost 172.16.117.120:8080>
    ServerAdmin webmaster@site2.com
    DocumentRoot "/var/www/site2"
    ServerName site2.local
    ErrorLog "logs/site2-error_log"
    CustomLog "logs/site2-access_log" combined
    
    <Directory "/var/www/site2">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

8080 포트

  • HTTP의 대체 포트웹 서버의 대체 포트로 자주 사용
  • 개발 및 테스트 환경에서 흔히 사용
가상 호스트 설정 파일 수정

주요 설정 항목 설명

ServerAdmin : 관리자 이메일 주소

DocumentRoot : 웹 문서 루트 디렉토리

ServerName : 가상호스트의 도메인 이름

ErrorLog : 오류 로그 파일 위치

CustomLog : 접근 로그 파일 위치

Directory : 디렉토리별 접근 권한 설정

3. 포트 추가 설정 (8080 포트 사용)

디렉티브 추가 및 방화벽 오픈
# Listen 디렉티브 추가
echo "Listen 8080" | sudo tee -a /etc/httpd/conf/httpd.conf

# 방화벽 설정
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

4. Apache 재시작

모든 설정이 완료되면 서비스 재시작 후 웹 페이지 접근을 시도합니다.

# Apache 재시작
sudo systemctl restart httpd

By Low ahn

리눅스를 처음 접하시는 분들은 위한 다양한 리눅스 정보를 공유합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다