[Linux] Virtual Host 설정하기


이번 시간에는 현재 Ubuntu에서 설정한 서버에서

Virtual Host를 설정하는 방법을 알아보자.


| Virtual Host란 ?

Virtual Host는 하나의 서버에서 한 개의 사이트 (Main host)외에 다른 여러 개의 웹 사이트를 서

비스 할 수 있도록 하는 것이다.

| Virtual Host 방식

Virtual Host를 설정하는 방법에는 두 가지가 있다.

1. Name-based Virtual Host

2. IP- based Virtual Host 이다.


| Name-based Virtual Host

Name-based Virtual Host는 말 그대로 이름을 기반으로 Virtual Host를 설정하는 방식이다.

즉, IP는 같지만 이름을 달리하여 설정하는 방식이다.




순서

Step 1. 새 웹 사이트를 위한 폴더 및 파일(index.html) 생성

ex) /home/userid/www/html/index.html


Step 2. 새 사이트를 위한 Virtual Host 설정

/etc/apache2/sites-available 위치에 .conf 파일 생성 및 설정

ex) sapp.edu.conf



ServerName - 설정하고 싶은 도메인 이름

DocumentRoot - 도메인의 Home directory path


Step 3. 새로운 VirtualHost 설정파일 등록

 - /etc/hosts 에 IP와 Domain 등록

$ a2ensite sapp.god.edu.conf

-> .conf 파일을 등록하면 된다.


Step 4. 홈 디렉토리 접근 권한 설정

/etc/apache2/apache2.conf 파일에 들어간다.

/Directory 검색 후 다음 과같은 구문을 추가한다.



Directory 안에는 홈 디렉토리의 path를 입력하면 된다.

Step 5. Apache2 Restart

$ systemctl reload apache2


| IP - based Virtual Host

IP - based는 서로 다른 IP를 설정하여 각각 다른 이름으로 사용하거나

혹은 같은 IP에서 포트 번호를 다르게 하여 다른 사이트로 접근하도록 하는 것이다.



순서

순서는 대부분 Name-based와 동일하다.

대신에 Port Number로 설정할 때에는 몇 가지 옵션을 추가해야한다.

먼저, /etc/apache2/ports.conf 로 가서



다음과 같이 80번 포트 외에 열어줄 포트 Number를 추가해 준다. (예시는 8000과 8080).

그리고 추가로 포트를 열어줄 도메인.conf 를 열어서 다음과 같이 추가 해준다.

<VirtualHost *:80> 
    DocumentRoot /var/www/omeka-A           ------> 기존에 있던 home directory
</VirtualHost>

<VirtualHost *:8081>
    DocumentRoot /var/www/omeka-B           ------> 새로 추가할 home directory, 포트번호 추가
</VirtualHost>



똑같이 apache2를 restart 해주면 완료!

댓글