온라인 호스팅을 시작하면 하나의 서버에서 여러 웹사이트를 운영하는 방법이 궁금해질 것입니다. 처음에는 복잡해 보일 수 있지만, 관련 기술 가이드를 참고하면 충분히 구현할 수 있습니다.
전 세계적으로 무료 오픈소스 웹 서버가 널리 사용되고 있습니다. 하나의 서버에서 여러 웹사이트를 호스팅하는 방법을 설명하기 전에, 먼저 웹 서버가 무엇이고 어떻게 동작하는지 살펴보겠습니다.
웹 서버란 무엇인가?
웹 서버는 텍스트, 이미지, 동영상, 애플리케이션 데이터 등 웹사이트의 콘텐츠를 저장하고 제공합니다. 즉, 이러한 콘텐츠를 요청하는 클라이언트는 웹 서버를 통해 해당 내용을 받아볼 수 있습니다. 가장 대표적인 클라이언트는 웹 브라우저로, 사용자가 링크를 클릭하거나 파일을 다운로드할 때 웹사이트에 데이터를 요청합니다.
웹 서버는 하이퍼텍스트 전송 프로토콜 (HTTP)을 통해 웹 브라우저와 통신합니다. 대부분의 웹 페이지 콘텐츠는 하이퍼텍스트 마크업 언어 (HTML)로 작성됩니다. 콘텐츠는 텍스트나 이미지 같은 정적 형태일 수도 있고, 고객이 구매를 위해 선택한 항목 목록처럼 동적 형태일 수도 있습니다. 대부분의 웹 서버는 서버 사이드 스크립팅 언어를 지원하여 동적 콘텐츠를 제공하기 위한 비즈니스 로직을 통신에 포함합니다. 일반적으로 Active Server Pages (ASP), JavaScript, PHP, Python, Ruby 등이 지원됩니다.
웹 서버는 어떻게 동작하나요?
웹 서버는 클라이언트-서버 모델을 기반으로 동작합니다. 이 표준 구조에서 고객 는 서버에 리소스나 서비스를 요청합니다. 서버.
웹 서버는 클라이언트 요청을 처리하기 위해 다음 단계를 거칩니다.
- 사용자가 웹사이트에 콘텐츠를 불러오려 하면, 웹 브라우저는 인터넷을 통해 접근 요청 (HTTP 요청)을 보냅니다.
- 웹 브라우저는 요청한 웹사이트의 IP 주소를 검색합니다. 캐시를 확인하거나 도메인 네임 시스템 (DNS)을 이용해 웹 페이지의 URL를 IP 주소로 변환합니다. 이 과정을 통해 사이트 파일이 호스팅된 웹 서버의 위치를 파악합니다.
- 이 시점에서 웹 서버는 HTTP 요청을 수신하고 HTTP 서버.
- 를 통해 처리합니다. HTTP 서버가 요청을 수락하면 관련 데이터를 얻기 위해 서버 파일을 탐색합니다.
- 웹 서버는 요청을 보낸 브라우저에 사이트 파일을 반환합니다. 이후 사용자는 웹사이트 콘텐츠를 보게 됩니다.
단, HTTP 서버가 요청한 파일을 찾지 못하거나 처리에 실패하면 웹 브라우저에 오류 메시지가 표시됩니다. 웹 서버의 주요 개념을 파악했다면, 하나의 서버에서 여러 웹 서버를 호스팅하는 방법도 어렵지 않게 익힐 수 있습니다.
하나의 서버에서 여러 웹사이트 호스팅하기: Apache
하나의 서버에서 여러 사이트를 호스팅하려면 Apache의 가상 호스트 파일을 사용해 어떤 도메인을 사용할지 지정해야 합니다. 사이트 요청을 처리하는 방법 중 하나는 이름 기반 가상 호스트입니다. 누군가 사이트에 접속하면 요청이 서버로 전달되고, 서버는 도메인 이름을 기준으로 어떤 사이트의 파일을 제공할지 결정합니다. 이 방식을 사용하면 동일한 IP로 하나의 서버에서 여러 사이트를 호스팅할 수 있습니다. 이 가이드에서는 각 도메인에 맞는 가상 호스트 파일 설정 방법을 설명합니다. 본격적으로 시작하기 전에, root 계정으로 로그인해야 한다는 점을 기억하세요.
함께 읽기: “Linux vs Windows 호스팅: 어떤 것이 더 적합할까요?”
1단계: 각 사이트별 디렉터리 생성
먼저 다음 명령어로 apache2를 설치하세요.
Debian 기반 시스템의 경우
apt install apache2 -y
CentOS 기반 시스템의 경우
yum install apache2 -y
호스팅할 각 사이트마다 디렉토리를 만들어야 합니다 (/var/www 폴더 내에). domain.com과 domain2.com을 도메인 이름으로 사용하겠습니다.
mkdir -p /var/www/domain.com/public_html
mkdir -p /var/www/domain2.com/public_html
2단계: 폴더 권한 설정
chmod -R 755 /var/www
3단계: 인덱스 페이지 설정
홈 페이지를 확인하려면 index.html 파일이 각 도메인에 생성되어 있어야 합니다. 다음과 같이 간단한 내용으로 작성할 수 있습니다 domain.com 테스트 이 파일에서.
vim /var/www/domain.com/public_html/index.html
domain.com 테스트
이제 다음 방법으로 저장하고 종료해야 합니다 탈출 버튼을 누른 후 입력하세요: wq
아래 명령어를 사용하면 두 번째 도메인에 대해 동일한 작업을 반복할 수 있습니다.
vim /var/www/domain2.com/public_html/index.html
4단계: 각 사이트별 설정 파일 복사
각 사이트에 대해 기본 설정 파일을 복사해 두어야 합니다. 나중에 새 사이트를 만들 때 항상 기본 복사본을 참조할 수 있습니다.
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain2.com.conf
5단계: 각 사이트별 설정 파일 편집
마지막으로 <VirtualHost *:80> 및 </VirtualHost> 태그.
주의하세요 ServerAlias 는 도메인의 대체 이름입니다. 대부분의 경우 도메인 이름 앞에 www를 붙여, 방문자가 www 주소와 non-www 주소 모두로 사이트에 접근할 수 있도록 합니다 (ServerName).
vim /etc/apache2/sites-available/domain.com.conf

다시 저장하고 종료하려면 wq. 두 번째 domain2.com.conf 파일에도 이 과정을 반복해야 합니다. 두 번째 도메인에 맞게 ServerName, ServerAlias, 그리고 DocumentRoot 도 반드시 업데이트하세요.
함께 읽기: “Apache vs NGINX”
6단계: 설정 파일 활성화
서버는 기본적으로 000-default.conf 파일을 읽도록 설정되어 있습니다. 하지만 이전 단계에서 각 도메인에 대한 새 설정 파일을 만들었으므로, 기본 파일을 비활성화하고 새 설정 파일을 사용하도록 변경해야 합니다.
a2dissite 000-default.conf
새로 만든 .conf 파일을 각각 활성화하면 서버가 해당 도메인과 연결됩니다.
a2ensite domain.com.conf
a2ensite domain2.com.conf
이제 Apache를 재시작하여 변경 사항을 적용합니다.
systemctl restart apache2
7단계: Apache 설정 확인
Apache를 시작한 후 /etc/host 파일 당신의 컴퓨터 또는 도메인의 DNS.
모든 설정이 완료되면 브라우저에서 도메인 주소로 접속해 3단계에서 만든 index.html 페이지가 표시되는지 확인하세요.
다음도 읽어보세요: 온프레미스 vs. 클라우드
하나의 서버에서 여러 웹사이트 호스팅하기: IIS
IIS(Internet Information Services) 웹 서버 하나로 수십 개, 심지어 수백 개의 웹사이트를 운영할 수 있습니다. 동일한 TCP 포트에서 여러 웹사이트를 수신하고 응답하도록 설정할 수 있습니다. IIS 관리자 인터페이스에서는 포트 8080과 같은 다른 포트에 바인딩하지 않아도 추가 웹사이트를 호스팅할 수 있습니다. 이 섹션에서는 동일한 IIS 서버에서 여러 웹사이트를 호스팅하고, 동일한 포트 및 IP 주소 또는 서로 다른 IP 주소에 바인딩하는 방법을 설명합니다.
Windows 서버에 IIS를 설치하는 방법
Windows에 IIS를 설치하면 빈 기본 웹 사이트가 생성되어 표준 웹 HTTP 포트인 TCP 80번을수신 대기합니다. 기술적으로 말하면, 이 사이트는 TCP/80 포트에 바인딩된 상태입니다. 브라우저에서 IIS 서버 이름("http://web-srv1") 또는 IP 주소("http://192.168.1.100")를 입력하면 해당 사이트에 접속할 수 있습니다.
1단계: IIS 웹 사이트 바인딩
Windows Server에서 실행 중인 IIS 웹 서버를 사용하면 여러 웹 사이트를 호스팅할 수 있습니다. 단, IIS가 HTTP 요청을 올바르게 분배하려면 각 웹 사이트가 고유한 값으로 식별되어야 합니다. IIS 웹 사이트에는 각 사이트를 고유하게 구별하는 세 가지 속성이 있으며, 그 목록은 다음과 같습니다.
- TCP 포트 번호
- IP 주소
- 호스트 헤더(호스트명)
호스팅된 웹 사이트 정보는 ServerBindings IIS Metabase의 속성에 저장되며, 형식은 다음과 같습니다. IP:포트:호스트명따라서 동일한 포트와 IP 주소를 사용하는 서버에서 여러 웹 사이트를 호스팅하려면 고유한 호스트 헤더.
를 사용해야 합니다. 호스트 헤더란 무엇인지 궁금할 수 있습니다. 호스트 헤더는 서버에 전달되는 HTTP 요청의 일부로, 요청이 어느 웹 사이트를 대상으로 하는지 지정합니다. 따라서 웹 서버 측에서 이 호스트 헤더를 명시해야 합니다. DNS에 호스트명과 IIS 웹 서버의 IP 주소가 올바르게 매핑된 레코드가 있어야 한다는 점도 유의하십시오.
이제 IIS 서버에서 포트 80으로 수신 대기 중인 웹 사이트가 하나 있다고 가정해 보겠습니다. 같은 포트에 두 번째 웹 사이트를 바인딩하려면 어떻게 해야 할까요?
2단계: 두 번째 IIS 웹 사이트 바인딩
IIS(인터넷 정보 서비스) 관리자에서 웹 사이트 추가 창을 사용해 새 웹 사이트를 만들고 이름을 TestSite로 지정합니다. 이 웹 사이트는 C:\inetpub\TestSite에 위치합니다. 이 단계에서는 호스트명을 아직 지정하지 않도록 주의하십시오.
사이트 콘텐츠를 C:\inetpub\TestSite에 복사한 후 IIS(인터넷 정보 서비스) 관리자를 열고, 서버의 호스트명 항목에서 사이트를 추가하면 마법사가 실행됩니다.


확인을 클릭하면 두 웹 사이트에 동시에 binding *:80 를 사용할 수 없다는 경고 메시지가 표시됩니다.


이 경고에 동의하면 포트 80에 또 다른 사이트가 바인딩됩니다. 단, 첫 번째 웹 사이트를 중지하지 않으면 두 번째 사이트를 시작할 수 없습니다. 아래 이미지를 참고하면 이 내용을 더 잘 이해할 수 있습니다.

Windows VPS 호스팅
강력한 하드웨어, 낮은 지연 시간, 그리고 무료 Windows까지 제공하는 Cloudzy의 합리적인 Windows VPS 플랜을 확인해 보세요!
무료 Windows 받기호스트 헤더를 이용한 IIS 서버의 다중 웹사이트 호스팅
두 번째 IIS 웹사이트에 고유한 바인딩을 만들려면 다른 호스트 이름(Host Name)을 지정해야 합니다. 이렇게 하려면 마우스 오른쪽 버튼으로 클릭하세요 TestSite 그리고 선택 편집 Bindings. 필요한 바인딩을 선택하고 클릭하세요 편집.
아래 이미지에서 볼 수 있듯이, 사용자가 접근할 고유한 호스트 이름을 지정해야 합니다. 이 튜토리얼에서는 TestSite를 사용하므로, Hostname 필드에 입력합니다.

명령 프롬프트를 사용해 IIS 사이트 바인딩을 구성할 수 있습니다. IIS 7 이상을 사용하는 경우, 바인딩 구성 명령을 실행하면 다음과 같은 결과를 볼 수 있습니다:
C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']
첫 번째 웹사이트와 마찬가지로, 두 번째 웹사이트도 시작할 수 있습니다.

이 단계에서는 IIS 웹 서버의 IP 주소 또는 호스트 이름을 가리키는 DNS 별칭(A 또는 CNAME 레코드)을 서버에 추가해야 합니다. Active Directory 도메인을 사용하는 경우, 도메인 컨트롤러에 DNS 레코드를 만들어야 합니다. IIS를 사용하면 CNAME DNS 콘솔에서 TestSite 이름의 레코드를 생성할 수 있으며 (dnsmgmt.msc) IIS 서버의 도메인 이름을 FQDN 대상 호스트로 설정할 수 있습니다.

PowerShell에서 다음 명령을 사용해 이 DNS 레코드를 생성할 수도 있습니다:
Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com
브라우저에서 http://TestSite 를 열어보세요. 모든 설정이 올바르게 완료되었다면 정상적으로 열려야 합니다.

Linux 호스팅, 간편하게
웹사이트나 웹 앱을 더 좋은 환경에서 호스팅하고 싶으신가요? 새로운 것을 개발 중이신가요? 아니면 단순히 Windows가 마음에 들지 않으신가요? 바로 그래서 저희가 Linux VPS를 제공합니다.
Linux VPS 시작하기IIS 서버에서 서로 다른 IP 주소로 여러 사이트 운영하기
이제 서로 다른 IP 주소를 사용해 IIS 웹 서버에서 두 사이트를 운영하는 방법을 알아보겠습니다. 먼저 Windows 서버에 별도의 VLAN 인터페이스를 추가하거나, NIC에 추가 IP 주소(별칭)를 할당해야 합니다.
이 튜토리얼에서 서버의 기본 IP 주소는 192.168.13.100이며, 동일한 네트워크 어댑터에 IP 별칭 192.168.13.101을 추가할 것입니다:
Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource
New-NetIPAddress –IPAddress 192.168.13.101 –PrefixLength 24 –InterfaceAlias “Ethernet” –SkipAsSource $True
이제 DNS 서버에서 새 사이트에 대한 A 레코드를 생성해야 합니다:
Add-DnsServerResourceRecordA -Name NewSite3 -IPv4Address 192.168.13.101 -ZoneName woshub.com -TimeToLive 01:00:00 –CreatePtr
사이트 바인딩 설정을 열어 사이트를 호스트의 추가 IP 주소에 바인딩합니다. IIS 서버에서 사이트 바인딩은 PowerShell로 관리할 수 있으며, 이를 위해 WebAdministration 모듈을 사용합니다:
Import-Module WebAdministration
사용 가능한 모든 IIS 사이트와 해당 바인딩 정보를 확인할 수 있습니다:
Get-IISSite
또는 특정 사이트만 확인할 수도 있습니다:
(Get-Website -Name NewSite).bindings.Collection

다음 명령을 사용해 사이트 바인딩을 변경할 수 있습니다. 이 명령으로 IP 주소, 포트, 이름을 모두 변경할 수 있습니다:
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:80:NewSite1" -PropertyName 'Port' -Value '8080'
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:8080:NewSite1" -PropertyName 'IPAddress' -Value '192.168.13.100'
다음 명령을 실행해 특정 IIS 사이트에 새 바인딩을 추가할 수 있습니다:
New-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:" -Protocol http
바인딩을 제거하려면 다음 명령어를 실행하세요:
Remove-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:"
이처럼 IIS 웹 서버에서는 서로 다른 IP 주소는 물론, 동일한 IP 주소와 TCP 포트 번호로도 여러 웹사이트를 운영할 수 있습니다.
마무리: 하나의 서버에서 여러 웹사이트 호스팅하기
이 글에서는 서버의 기본 개념을 중심으로, 단일 서버에서 여러 웹사이트를 호스팅하는 방법을 설명했습니다. Cloudzy는 다양한 Linux VPS 호스팅 솔루션도 제공하며, 이를 통해 하나의 서버에서 여러 웹사이트를 운영할 수 있습니다. Cloudzy의 플랜은 여러 대의 서버를 운영하는 비용을 줄여주며, 서버 리소스도 필요에 따라 언제든지 업그레이드할 수 있습니다. RAM, 스토리지, 프로세서, 대역폭 모두 유연하게 조정 가능합니다.
자주 묻는 질문
단일 웹 서버에서 여러 웹사이트를 운영할 수 있나요?
HDD 공간, RAM, CPU 성능 등 충분한 리소스를 갖춘 서버가 있다면, 가상 호스팅을 통해 여러 웹사이트를 운영할 수 있습니다. 웹 서버 한 대에서 제한 없이 웹사이트를 호스팅할 수 있습니다.
하나의 서버에서 두 개의 웹사이트를 실행하려면 어떻게 해야 하나요?
단일 웹 서버에서 여러 웹사이트를 호스팅하는 방식을 가상 서버라고 합니다. 선택한 서버가 트래픽과 디스크 공간 요구사항을 충족할 만큼 충분한 리소스를 갖추고 있는지 반드시 확인하세요.
VPS 서버는 어떤 용도로 사용되나요?
VPS는 서버의 전용(프라이빗) 리소스를 제공하는 호스팅 서비스입니다. VPS는 전용 서버 공간을 제공하지 않는 공유 호스팅보다 보안성과 안정성이 높습니다.
사람들이 VPS를 사용하는 이유는 무엇인가요?
VPS 호스팅은 전용 호스팅보다 비용이 낮으면서도 공유 호스팅보다 안정성, 보안, 성능이 뛰어나 널리 선택받고 있습니다.