0부터 시작하는 Linux 공부 - 가상 호스팅

1. 가상 호스팅이란?
- 기본적으로 한 서버는 하나의 도메인을 사용한다

- 가상 호스팅은 하나의 서버에 여러 개의 도메인 이름을 호스팅 하는 방식이다. 이를 통해 하나의 서버에서 다 수의 웹 사이트를 제공해준다. 다른 말로, 하나의 물리 서버를 여러 개의 가상 서버로 나누어 사용하면서, 각각의 가상 서버를 독립적으로 운영할 수 있게 해주는 것 이다
- 호스팅이란? 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해 주는 서비스
2. 가상 호스팅의 종류
url 경로를 통한 가상 호스팅
- url 에 경로 컴포넌트를 추가해서 서버가 요청한 사이트를 파악
- 컴포넌트 : 프로그래밍에 있어 재사용이 가능한 각각의 독립된 모듈
포트 번호를 통한 가상 호스팅
- 사이트 별로 다른 포트를 할당하여 분리된 웹 서버의 인스턴스가 요청을 처리
Ip 주소를 통한 가상 호스팅
- 가상 사이트들에 별도의 Ip 주소를 할당하고, 해당 Ip 주소로 사이트 식별
HOST 헤더를 통한 가상 호스팅
- HTTP Request header의 host 필드를 통해 가상 사이트 식별
3. 가상 호스팅의 필요성
- 서버 호스팅은 한 대의 서버를 임대하여 단독으로 사용하는 것 이다
- 웹 호스팅은 서버의 일정 부분을 사용할 수 있게 해주는 것 이다
가상 호스팅은 이러한 웹 호스팅과 서버 호스팅의 중간 형태로, 하나의 물리적 서버에 다수의 가상 서버를 만들어, 물리 서버의 자원들을 공유한다. 따라서, 비용적으로 저렴하며, 서버의 물리 자원들을 효율적으로 사용할 수 있다
4. Linux 에 가상 호스팅 설정

- 먼저, httpd 에 가상 호스팅 설정을 해주자

- NameVirtualHost * :80 : 80번 포트에 이름 기반의 가상 호스트 사용하겠다는 것 으로, 실제 Ip 주소를 입력하는 방법도 있다
- include /etc/httpd/conf/vhost.conf : 도메인에 대한 설정 파일 포함
- Directory ~ : 도메인 업로드 및 테스트를 위한 디렉터리 접근 권한 허용

- 가상 호스팅을 설정할 vhost.conf 파일을 생성함과 동시에 vi(m) 편집기로 열어주자

- vhost.conf 에 다음 두 개의 도메인에 대해 설정한다. 우리는 lijahong1.com 과 lijahong2.com 을 사용해 볼 것 이다
- server admin 은 클라이언트가 오류 발생시 접촉할 이메일이다. 주석 처리 해도 된다
- DocumentRoot 는 해당 주소에 대한 홈 디렉터리
- ServerName 은 도메인 이름이며, ServerAlias 는 또다른 이름이다. 두 개 다 DNS 설정시 동일하게 설정해야 하므로, 잘 기억해두자

- 각 주소에 대한 홈 디렉터리를 만들자. 이 안에 클라이언트가 접근시 출력할 html 파일을 저장할 것 이다

- 먼저, lijahong1 주소에 대한 index.html 을 생성하고, 편집기로 열어주자

- 다음과 같이 내용을 입력해주었다

- 다음, lijahong2 주소에 대한 index.html 을 생성하고, 편집기로 열어주자

- 다음과 같이 내용을 입력해주었다

- 해당 디렉터리의 권한을 변경해주었다. 755 이므로 rwx r-x r-x 이다. 이제 그룹 사용자와 외부 사용자가 쓰기는 못하지만, 읽기랑 실행은 가능하다. 상세 정보 출력을 통해 권한이 잘 변경되었는지 확인하였다

- 이제 httpd 를 재실행 해주자
5. 가상 호스팅 테스트

- 본 컴퓨터에 들어가서, 해당 디렉터리의 hosts 파일을 메모장으로 열어주자. 꼭 관리자 권한으로 열어줘야 한다!!!

- 다음과 같이 설정하자
- 실제 도메인을 네임서버 A레코드를 연결해야 하지만 현재는 도메인이 존재하지 않기 때문에 본인 PC 에서 강제로 호스트를 지정하여 홈페이지를 연결하는 방법 이다

- 먼저, lijahong1 에 대한 ping 테스트 이다. 잘 작동된다

- 웹에서도 잘 접속된다

- 다음, lijahong2 에 대한 ping 테스트 이다. 잘 작동된다

- 웹에서도 잘 접속된다
항상 잘 보고 있습니다!