[Linux] 가상 호스트 (Virtual Hosts)Linux2022. 3. 11. 12:35
Table of Contents
728x90
✅ 가상 호스트 (Virtual Hosts)
- 가상 호스트란 기본적으로 웹 서버에 존재하는 주 호스트 예를 들어 (aaa.com) 이라는 도메인을 사용하고 있지만 한 서버에 (bbb.com) / (ccc.com) 등 여러 도메인을 등록하여 사용하는 것이다.
- 가상 호스트 서버를 이용해 제한된 공간 안에서 여러개의 홈페이지를 제공해주는 서비스(웹, 메일 등)가 호스팅 서비스이다.
✅ 가상 호스트 종류
이름 기반의 가상호스트 (Name-based virtual host)
주소 기반의 가상호스트 (IP-based virtual host)
포트 기반의 가상호스트 (Port-based virtual host)
기본 가상호스트 (Default virtual host)
이름 기반의 가상호스트 (Name-based virtual host)
- 하나의 IP address에 여러개의 가상 호스트를 운영하는 것
주소 기반의 가상호스트 (IP-based virtual host)
- 가상 호스트 각각에 하나씩의 IP address를 할당하여 운영하는 것
- 이름 기반의 가상호스트 보다 안정적이고 더 효율적이며 관리하기 쉽다.
- 각각의 웹 사이트를 하나의 물리적인 서버에서 별도로 관리할 수 있다. (전환이 쉽다.)
포트 기반의 가상호스트 (Port-based virtual host)
- 동일한 호스트에 포트만 다르게 지정하여 운영
- 80번이 주 호스트이고, 8080, 8081, 8082와 같이 순서대로 포트를 지정해 가상 호스트를 할당한다.
기본 가상호스트 (Default virtual host)
- 가상 호스트를 운영하지만 매칭되지 않는 호스트로 접속되었을 때 기본으로 응답할 호스트를 지정하는 것
✅ 가상 호스트 설정 파일
/etc/httpd/conf.d/site1.conf
<VirtualHost 192.168.0.1:80># 블록의 기본 태그, 해당 IP와 포트 고려 DocumentRoot /srv/site1/www # DocumentRoot 정의 가상호스트 내에서만 유효 ServerName site1.example.com # 가상호스트 도메인네임 ServerAlias문이 사용될 수도 있음 ServerAdmin webmaster@site1.example.com # 가상 호스트 관리자의 이메일 주소 ErrorLog "logs/site1_error_log" # 가상호스트 오류 메시지 위치 CustomLog "logs/site1_access_log" combined # 가상 호스트 액세스 메시지 </VirtualHost> <Directory /srv/site1/www> # 아래 정의된 DocumentRoot에 엑세스 가능 Require all granted # 디렉토리를 따로 생성할 것 AllowOverride None </Directory> |
✅ 가상 호스트 실습
[root@server ~]# ls /usr/share/doc/httpd-2.4.6/
ABOUT_APACHE httpd-languages.conf LICENSE
CHANGES httpd-manual.conf NOTICE
httpd-dav.conf httpd-mpm.conf proxy-html.conf
httpd-default.conf httpd-multilang-errordoc.conf README
httpd-info.conf httpd-vhosts.conf VERSIONING
[root@server ~]# vi /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf
[root@server ~]# vim /etc/httpd/conf.d/00-vhost.conf
[root@server ~]# cp /etc/httpd/conf.d/00-vhost.conf /etc/httpd/conf.d/01-vhost.conf
[root@server ~]# ls /etc/httpd/conf.d
00-vhost.conf fcgid.conf README userdir.conf
01-vhost.conf autoindex.conf manual.conf ssl.conf welcome.conf
[root@server ~]# mkdir /var/www/html[0..1}
[root@server ~]# echo vhost0 test > /var/www/html0/index.html
[root@server ~]# echo vhost1 test > /var/www/html1/index.html
[root@server ~]# cat /var/www/html0/index.html
vhost0 test
[root@server ~]# cat /var/www/html1/index.html
vhost1 test
[root@server ~]# vi /etc/hosts
[root@server ~]# systemctl restart httpd
[root@server ~]# curl vhost0
vhost0 test
[root@server ~]# curl vhost1
vhost1 test
[root@server ~]# curl 192.168.6.100
vhost0 test
[root@server ~]# curl vhost0.test.example.com
vhost0 test
[root@server ~]# curl vhost1.test.example.com
vhost1 test
[root@server ~]# mkdir -p /src/www/html2
[root@server ~]# echo "vhost2 test" > /src/www/html2/index.html
[root@server ~]# cd /etc/httpd/conf.d
[root@server conf.d]# cp 00-vhost.conf 02-vhost.conf
[root@server conf.d]# vi 02-vhost.conf
[root@server conf.d]# vi /etc/hosts
[root@server conf.d]# systemctl restart httpd
[root@server conf.d]# curl vhost2
vhost2 test
🔗 참고
더보기
728x90
'Linux' 카테고리의 다른 글
[Linux] DataBase (MariaDB) 설치 및 설정 (0) | 2022.03.11 |
---|---|
[Linux] HTTPS (HTTP Secure), openssl (0) | 2022.03.11 |
[Linux] Apache (0) | 2022.03.11 |
[Linux] traceroute 명령어 (0) | 2022.03.11 |
[Linux] Master & Slave (1) | 2022.03.10 |
@TTOII :: 뭉게뭉게 클라우드
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!