맨위로가기

가상 호스팅

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

가상 호스팅은 하나의 서버에서 여러 웹사이트를 호스팅하는 기술로, IP 기반과 이름 기반의 두 가지 주요 방식으로 나뉜다. IP 기반 가상 호스팅은 각 사이트에 고유한 IP 주소를 할당하여 작동하며, 클라이언트 호환성이 좋지만 IP 주소 고갈과 관리의 어려움이 있다. 이름 기반 가상 호스팅은 동일한 IP 주소에 여러 호스트 이름을 사용하여 IP 자원을 절약하지만, SSL/TLS 보안 웹사이트 호스팅에 제약이 있으며, 서버 이름 표시(SNI)를 지원하지 않는 구형 클라이언트에서는 문제가 발생할 수 있다. 가상 호스팅은 웹 호스팅 서비스, 기업 내부 웹사이트 관리, 서버 운영 비용 절감 등 다양한 분야에서 활용되며, 아파치, IIS, nginx 등 다양한 서버 소프트웨어에서 지원된다. 그러나 동일 서버의 부하 공유, 서버 유지보수 시 모든 도메인 중단 등의 한계점도 존재한다.

더 읽어볼만한 페이지

  • 웹 호스팅 - 전용 호스팅 서비스
    전용 호스팅 서비스는 특정 사용자에게 서버 자원을 단독 할당하여 안정적인 성능, 높은 보안 수준, 자유로운 서버 환경 구성 및 관리 유연성을 제공하지만, 초기 설정 및 유지 비용이 높고 서버 운영에 대한 관리 책임과 기술적 요구 사항이 따른다.
  • 웹 호스팅 - 웹 호스팅 서비스
    웹 호스팅 서비스는 웹사이트 소유자가 자체 서버 없이 웹사이트를 운영할 수 있도록 서버 공간과 관련 서비스를 제공하며, 1990년대 초 인터넷 상업화와 함께 등장하여 다양한 호스팅 종류와 부가 서비스를 제공한다.
가상 호스팅
일반 정보
이름가상 호스팅
다른 이름공유 호스팅
가상 서버
설명하나의 서버에서 여러 개의 웹사이트를 호스팅하는 방법
기술적 측면
작동 방식웹 서버가 요청된 호스트 이름을 기반으로 올바른 웹사이트 콘텐츠를 제공
프로토콜HTTP
HTTPS
주소 지정이름 기반 가상 호스팅에서는 모든 웹사이트가 동일한 IP 주소를 공유
보안보안 강화를 위해 SSL/TLS 인증서 사용 가능
장점 및 단점
장점비용 효율적
설정 및 관리 용이
확장성 용이
단점서버 자원 공유로 인한 성능 저하 가능성
다른 웹사이트의 문제로 인한 영향 가능성
고급 설정 및 사용자 정의 제한
사용 사례
개인 웹사이트개인 블로그, 포트폴리오 사이트 등
소규모 기업 웹사이트간단한 정보 제공 및 마케팅 목적의 웹사이트
개발 및 테스트 환경웹 애플리케이션 개발 및 테스트를 위한 환경
관련 기술
웹 서버 소프트웨어Apache HTTP Server
nginx
Microsoft IIS
제어판cPanel
Plesk
DirectAdmin
기타
참고 사항가상 호스팅은 웹 호스팅 서비스의 가장 일반적인 형태 중 하나임

2. IP 기반 가상 호스트

IP 기반 가상 호스트는 각 도메인 이름마다 고유한 IP 주소를 할당하는 방식이다.

일반적으로 웹 서버나 메일 서버를 운영하려면 도메인 수 이상의 서버 컴퓨터가 필요하다. 가상 호스트를 이용하면 하나의 서버 컴퓨터로 여러 도메인을 운영할 수 있어 서버 컴퓨터 수를 줄여 운영 비용을 절감할 수 있다.

또한, 도메인 추가도 용이하며, 소규모 웹 사이트 운영이나 저렴한 호스팅 서버 서비스 등에서 많이 사용된다.

가상 호스트에는 '''IP 기반 가상 호스트'''와 '''이름 기반 가상 호스트''' 두 가지 방법이 있다.

2. 1. 작동 원리

IP 기반 가상 호스팅은 각 사이트(DNS 호스트 이름 또는 동일하게 작동하는 DNS 호스트 이름 그룹)가 고유한 IP 주소를 가리키는 방식이다. 웹 서버는 여러 물리적 네트워크 인터페이스, 동일한 물리적 인터페이스의 가상 네트워크 인터페이스, 또는 하나의 인터페이스에 여러 IP 주소를 사용한다.

웹 서버는 각 IP 주소에 대해 별도의 수신 소켓을 열거나, 단일 소켓으로 모든 인터페이스를 수신하고 연결을 수락한 후 TCP 연결이 수신된 IP 주소를 얻을 수 있다. 어떤 방식이든, IP 주소를 사용하여 어떤 웹사이트를 제공할지 결정할 수 있다. 클라이언트는 이 과정에 관여하지 않으므로 (이름 기반 가상 호스팅과 달리) 호환성 문제가 없다.[1]

이 방식의 단점은 서버가 모든 웹 사이트에 대해 다른 IP 주소를 필요로 한다는 것이다. 이는 관리 오버헤드(서버에 주소를 할당하고 해당 주소의 사용을 인터넷 레지스트리에 정당화하는 것 모두)를 증가시키고 IPv4 주소 고갈에 기여한다.[1]

IP 기반 가상 호스트는 사용하는 도메인 이름마다 IP 주소를 준비하고, 하나의 서버 컴퓨터에 여러 IP 주소를 할당한다. 클라이언트가 접속하려는 도메인마다 다른 IP 주소로 접속하기 때문에, 서버 소프트웨어는 접속 대상 IP 주소를 보고 사용할 도메인을 판별한다. IP 계층에서만 도메인 판별이 가능하므로, 애플리케이션 프로토콜의 종류에 관계없이 서버 소프트웨어는 IP 기반 가상 호스트를 구현할 수 있다.[2]

범용성이 높은 방법이지만, IP 주소를 늘리는 것이 어려운 경우에는 적합하지 않다. (일반적으로 IP 주소의 취득은 비용이 많이 든다)[2]

1대의 물리 서버 컴퓨터에 여러 IP 주소를 할당하는 것은, NIC를 여러 장 탑재하는 것 외에, "IP 에일리어스"라는 기능을 통해서도 실현된다.[2]

2. 2. 장점

IP 기반 가상 호스팅은 클라이언트(웹 브라우저 등)의 종류나 버전에 관계없이 안정적으로 작동한다. 클라이언트는 접속하려는 도메인마다 다른 IP 주소로 접속하기 때문에 서버는 접속 대상 IP 주소를 보고 어떤 도메인을 사용할지 쉽게 판별할 수 있다.[1]

애플리케이션 프로토콜 종류와 관계없이 IP 계층에서 도메인 판별이 가능하므로, 웹 서버뿐만 아니라 다양한 애플리케이션 프로토콜의 서버 소프트웨어에서 IP 기반 가상 호스팅을 구현할 수 있다. 이는 높은 호환성으로 이어진다.[1]

2. 3. 단점

IP 기반 가상 호스팅 방식은 각 사이트마다 고유한 IP 주소를 필요로 한다. 이는 서버가 모든 웹 사이트에 대해 다른 IP 주소를 요구하므로, 관리 오버헤드(서버에 주소를 할당하고 인터넷 레지스트리에 사용을 정당화)를 증가시키고 IPv4 주소 고갈에 기여한다. IP 기반 가상 호스트는 사용하는 도메인 이름마다 IP 주소를 준비해야 하고, 하나의 서버 컴퓨터에 여러 IP 주소를 할당해야 한다.[1]

클라이언트가 접속하는 도메인마다 다른 IP 주소로 접속하기 때문에 서버 소프트웨어는 접속 대상 IP 주소를 보고 어떤 도메인을 사용할지 판별할 수 있다.[1] 이 방식은 범용성이 높지만, IP 주소 확보가 어려운 경우에는 적합하지 않다. 일반적으로 IP 주소 취득에는 많은 비용이 소요된다.[1]

3. 이름 기반 가상 호스트

이름 기반 가상 호스트는 하나의 IP 주소에 여러 도메인 이름을 연결하는 방식이다. 이 방식을 사용하면 하나의 서버로 여러 웹사이트를 운영할 수 있어 효율적이다.

3. 1. 작동 원리

이름 기반 가상 호스트는 동일한 IP 주소에 대해 여러 개의 호스트 이름을 사용한다.

클라이언트가 접속한 도메인에 관계없이 동일한 IP 주소로 접속하기 때문에 IP 계층의 정보만으로는 도메인을 판별할 수 없다. 도메인을 판별하기 위해서는 애플리케이션 프로토콜 측에 접속 대상 도메인을 판별하는 정보가 포함되어 있어야 한다. HTTP의 경우 Host 헤더[2], SMTP의 경우 Rcpt To에 포함된 이메일 주소의 도메인으로 판별을 수행한다.

예를 들어, 서버는 `www.example.com`과 `www.example.net`의 두 도메인에 대한 요청을 수신할 수 있으며, 둘 다 동일한 IP 주소로 resolve된다. `www.example.com`의 경우 서버는 `/var/www/user/Joe/site/` 디렉토리에서 HTML 파일을 보내는 반면, `www.example.net`에 대한 요청은 서버가 `/var/www/user/Mary/site/`에서 페이지를 제공하도록 한다. 마찬가지로 동일한 도메인의 두 개의 하위 도메인을 함께 호스팅할 수 있다. 예를 들어 블로그 서버는 `blog1.example.com`과 `blog2.example.com`을 모두 호스팅할 수 있다.

이름 기반 가상 호스팅의 가장 큰 문제는 SSL/TLS를 실행하는 여러 개의 보안 웹사이트를 호스팅하기 어렵다는 것이다. SSL/TLS 핸드셰이크는 예상되는 호스트 이름이 서버로 전송되기 전에 발생하므로 서버는 핸드셰이크에서 어떤 인증서를 제공해야 하는지 알 수 없다. "subjectaltname" 필드를 사용하거나 와일드카드를 사용하여 단일 인증서가 여러 이름을 포함할 수 있지만, 이 접근 방식의 실제 적용은 관리적 고려 사항과 와일드카드에 대한 일치 규칙에 의해 제한된다. 이 문제를 해결하기 위해 핸드셰이크 시작 부분에 이름을 표시하는 SNI라는 TLS 확장 기능이 있지만, 일부 구형 클라이언트(특히 Windows XP 또는 이전 Android 버전의 인터넷 익스플로러)는 SNI를 구현하지 않는다.

애플리케이션 프로토콜에 접속 대상 도메인 정보가 포함되지 않은 서버 소프트웨어에서는 구현할 수 없다. 또한 TLS는 애플리케이션 계층 프로토콜의 통신을 시작하기 전에 협상을 수행하는 형태로 사용되는 경우가 많아, 이 시점에서 서버 인증서를 구분하여 사용할 수 없다. 이 때문에 HTTP에서는 가상 호스트를 구현할 수 있지만 HTTPS에서는 운용할 수 없는 상황이 발생한다. 이 문제에 대처하기 위해 2003년에 Server Name Indication라는 확장 사양이 TLS에 정의되었다.

DNS이 제대로 작동하지 않으면 IP 주소를 알고 있더라도 가상 호스팅된 웹사이트에 접근하기 어렵다. 사용자가 `http://10.23.45.67/`와 같이 IP 주소를 사용하여 시스템에 연결하려고 시도하면 웹 브라우저는 IP 주소를 호스트 이름으로 보낸다. 웹 서버는 사용할 서버 이름(vhost)을 알려주는 웹 브라우저 클라이언트에 의존하므로 서버는 기본 웹사이트로 응답하며, 이는 사용자가 예상하는 사이트가 아닌 경우가 많다. 이 경우의 해결 방법은 클라이언트 시스템의 호스트 파일에 IP 주소와 호스트 이름을 추가하는 것이다.

3. 2. 장점

이름 기반 가상 호스트는 모든 도메인 이름에 동일한 IP 주소를 사용하므로, 하나의 서버 컴퓨터에 필요한 IP 주소가 하나로 충분하다.[2]

또한 도메인을 추가하는 경우에도 서버 소프트웨어 설정을 변경하는 것만으로 대응할 수 있어 매우 저렴하다.[2]

3. 3. 단점

이름 기반 가상 호스트는 동일한 IP 주소에 대해 여러 개의 호스트 이름을 사용하기 때문에 몇 가지 문제점이 있다.

  • 호환성 문제: 구형 웹 브라우저나 일부 프로토콜은 HTTP/1.1에서 필수적인 Host영어 HTTP 헤더를 지원하지 않아 정상적으로 작동하지 않을 수 있다.[2]
  • SSL/TLS 인증서 적용 제한: SSL/TLS 핸드셰이크는 예상되는 호스트 이름이 서버로 전송되기 전에 발생하므로, 서버는 어떤 인증서를 제공해야 하는지 알 수 없다. 따라서 동일 IP 주소에 여러 개의 SSL/TLS 인증서를 적용하기 어렵다. 이 문제는 서버 이름 표시(SNI) 기술로 일부 해결할 수 있지만, 일부 구형 클라이언트에서는 SNI를 지원하지 않는다.[2]
  • DNS 문제: DNS가 제대로 작동하지 않으면 IP 주소를 알고 있더라도 가상 호스팅된 웹사이트에 접근하기 어렵다. 웹 브라우저는 IP 주소를 호스트 이름으로 보내는데, 웹 서버는 사용할 서버 이름(vhost)을 알려주는 웹 브라우저 클라이언트에 의존하기 때문이다. 이 경우 서버는 기본 웹사이트로 응답하며, 사용자가 예상하는 사이트가 아닐 수 있다. 이 문제는 클라이언트 시스템의 호스트 파일에 IP 주소와 호스트 이름을 추가하여 임시로 해결할 수 있지만, 일반 사용자에게는 유용하지 않다.

3. 3. 1. 서버 이름 표시 (SNI)

SNI(Server Name Indication)는 TLS 프로토콜의 확장 기능이다. 이름 기반 가상 호스트 환경에서 SSL/TLS 인증서 문제를 해결하기 위해 사용된다. 클라이언트가 서버에 접속할 때, 접속하려는 도메인 이름을 암호화 전에 서버에 알려주어 올바른 인증서를 선택할 수 있도록 한다.[2]

SSL/TLS 핸드셰이크는 예상되는 호스트 이름이 서버로 전송되기 전에 발생하므로, 서버는 핸드셰이크에서 어떤 인증서를 제공해야 하는지 알 수 없었다. 이 문제를 해결하기 위해 핸드셰이크 시작 부분에 이름을 표시하는 SNI 라는 TLS 확장 기능이 있지만, 일부 구형 클라이언트(특히 Windows XP 또는 이전 Android 버전의 인터넷 익스플로러)는 SNI를 구현하지 않는다.[2]

HTTPS에서는 가상 호스트를 운용할 수 없는 상황이 발생했는데, 이 문제에 대처하기 위해 2003년에 Server Name Indication라는 확장 사양이 TLS에 정의되었다.[2]

4. 가상 호스트의 활용

가상 호스팅은 저렴한 비용으로 웹사이트 호스팅을 제공하는 회사에서 대규모로 활용된다. 전 세계 웹 호스팅 서비스 고객 웹사이트 대다수는 가상 호스팅 기술을 사용하여 공유 서버에서 호스팅된다.[1]

많은 기업은 고객 엑스트라넷 웹사이트, 직원 엑스트라넷, 내부 인트라넷 등 여러 개의 개별 웹사이트를 운영해야 하는 경우가 많다. 이때 가상 호스팅 기술을 활용하면 단일 서버로 통합하여 관리 및 관리 오버헤드를 줄일 수 있다.[1]

일반적으로 웹 서버나 메일 서버를 운영하려면 도메인 수 이상의 서버 컴퓨터가 필요하지만, 가상 호스트를 이용하면 하나의 서버 컴퓨터로 여러 도메인을 운영할 수 있어 운영 비용을 절감할 수 있다.[1] 또한, 이름 기반 가상 호스트(후술)를 사용하면 IP 주소도 절약할 수 있다.[1]

가상 호스트는 소규모 웹 사이트 운영이나 저렴한 호스팅 서버 서비스 등에서 많이 사용되며, 도메인 추가도 용이하다.[1]

가상 호스트는 크게 '''IP 기반 가상 호스트'''와 '''이름 기반 가상 호스트'''의 두 가지 방법이 있다.[1]

5. 대표적인 서버 소프트웨어

6. 한계점 및 고려 사항

가상 호스팅은 하나의 서버 컴퓨터로 여러 도메인을 운영하기 때문에, 특정 도메인의 과부하가 다른 도메인에 영향을 주는 등 동일 서버 컴퓨터에서 운영되는 다른 도메인의 문제점을 공유하게 된다.

이름 기반 가상 호스팅의 경우, 과거 일부 웹 브라우저에서 지원하지 않아 서버에 처음에 등록된 항목에만 접속할 수 있었지만, 현재 주류 브라우저는 모두 지원한다.

또한, 장비 유지 보수 등으로 서버 소프트웨어를 중단하는 경우에는 모든 도메인이 함께 중단된다.

참조

[1] 웹사이트 How many active sites are there? https://www.netcraft[...] 2018-07-14
[2] 간행물 Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing http://tools.ietf.or[...] IETF 2014-06
[3] 웹인용 How many active sites are there? https://www.netcraft[...] 2018-07-14



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com