[Apache Multi Domain] 아파치 멀티 도메인 : 이름기반 VirtualHost 설정

이름기반 VirtualHost 설정

하나의 서버가 여러개의 도메인을 가지고 있고, 각각의 도메인마다 다른 서비스를 하고 싶을 때 아파치의 VirtualHost를 사용하면 하나의 서버로 각기 다른 도메인을 서비스할 수 있다.


만약의 서버의 아이피가 192.168.0.5이고, 쇼핑몰 사이트와 책구매 사이트를 운영하고 싶다고 생각해보자.
우리는 두 개의 사이트를 운영해야하기 때문에 도메인을 2개 구입했다. (shopping.com, book.com) 이렇게되면 두개의 도메인은 둘다 192.168.0.5서버를 바라보게 된다.


하지만 우리는 shopping.com 으로 접속했을 때는 쇼핑몰 사이트를, book.com에 접속했을 때는 책 구매 사이트를 보여주고 싶다.
이럴 때 가상호스트(VirtualHost)를 사용하면 원하는대로 서비스를 제공할 수 있다.(Tomcat에서도 존재)


일단, Apache설정파일인 httpd.conf에서 VirtualHost 설정의 주석을 제거한다.

httpd.conf

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

conf/extra/httpd-vhosts.conf 파일은 include하겠다 정도로 생각하면 될 거 같다. (httpd.conf에 바로 추가해도 동작하긴함)
그 후 httpd-vhosts.conf의 설정을 추가해보자.

httpd-vhosts.conf

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

<VirtualHost *:80>
        DocumentRoot "/home/corn/deploy/book/doc_base"
        ServerName book.com
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot "/home/corn/deploy/shopping/doc_base"
        ServerName shopping.com
</VirtualHost>
  • NamedVirtualHost : 가상호스팅을 할 IP영역을 지정
  • VirtualHost : 세부적인 설정 명시

NamedVirtualHost *:80 => 80포트로 들어오는 모든 IP주소에 대해 가상호스트 요청을 제공하겠다.

VirtualHost 설정

  • ServerName : 서비스할 도메인
  • DocumentRoot : 실제 소스파일이 있는 루트를 지정

이렇게 설정 후 shopping.com으로 request를 날릴 경우, /home/corn/deploy/shopping/doc_base 안에 있는 파일을 찾아가게 된다.


하지만 이 설정 이후에 한 가지 더 설정을 해야하는데 바로 접근권한에 대한 설정이다.
위의 설정 후에 아파치를 재시작하고 shopping.com에 접속하게되면 403 Forbidden 에러를 볼 수 있다.
shopping.com의 DocumentRoot인 /home/corn/deploy/shopping/doc_base 에 접근할 수 없다는 뜻인데, httpd.conf 파일의 <Directory> 태그에 설정을 해줘야 한다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

httpd.conf

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow    // deny -> allow 순서
    Deny from all       // 모든 접속을 deny
</Directory>

httpd.conf 의 <Directory>설정을 보면 위와 같이 되어 있는 것을 볼 수 있다.
Order는 허용정책에 대한 순서로, Deny를 수행하고 Allow를 수행하게 되어 있는데, 아래줄에 모든 접속을 deny한다고 설정이 되어 있기 때문에 모든 접근이 거부된 것이다. (Directory 태그의 파라미터(/)는 전체 폴더를 뜻함)

Directory태그 아래에 우리가 접근해야할 Directory 설정을 추가해주자

<Directory "/home/corn/deploy/book/doc_base">
    Order Allow,Deny
    Allow from all
</Directory>

<Directory "/home/corn/deploy/shopping/doc_base">
    Order Allow,Deny
    Allow from all
</Directory>

이렇게하면, 우리가 설정한 DocumentRoot에 접근할 수 있게 된다.

[출처] https://blog.cornsworld.co.kr/348

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1140 [ 一日30分 인생승리의 학습법] [ git 기본 ] 브랜치 전환하기 file 졸리운_곰 2023.07.06 41
1139 [ 一日30分 인생승리의 학습법] [ git 기본 ] git pull 시 특정 branch 를 pull 해오기 졸리운_곰 2023.07.06 40
1138 [ 一日30分 인생승리의 학습법] 웹서버의 mht 파일 웹 배포 how to load by browser remote mht file // Reading .mht webpages from server 졸리운_곰 2023.06.05 487
1137 [ 一日30分 인생승리의 학습법] WebGPU Graphics Programming: Step-by-Step file 졸리운_곰 2023.05.30 57
1136 [ 一日30分 인생승리의 학습법] Git으로 실행취소(Undo)하는 거의 모든 방법 file 졸리운_곰 2023.05.07 39
1135 [ 一日30分 인생승리의 학습법] [git] [초보용] Git 되돌리기( Reset, Revert ) 졸리운_곰 2023.05.07 51
1134 [ 一日30分 인생승리의 학습법] 피그마 사용법과 협업하기(개발자 시점) file 졸리운_곰 2023.04.25 37
1133 [ 一日30分 인생승리의 학습법] ChatGPT를 비롯한 대화형 AI 서비스에서 더 좋은 결과물을 얻게 해주는 프롬프트 엔지니어링 (Prompt Engineering) file 졸리운_곰 2023.04.10 77
1132 [ 一日30分 인생승리의 학습법] 딥러닝 관련 강의, 자료, 읽을거리들에 대한 모음입니다. 졸리운_곰 2023.04.02 46
1131 [ 一日30分 인생승리의 학습법] 확실히 알아두면 만사가 편해지는 머신러닝 10가지 알고리즘 file 졸리운_곰 2023.04.01 46
1130 [ 一日30分 인생승리의 학습법] [머신러닝] 분류 알고리즘 한 페이지 정리(로지스틱회귀, SVM, KNN, file 졸리운_곰 2023.04.01 47
1129 [ 一日30分 인생승리의 학습법] ChatGPT로 10분만에 웹사이트 만들기 : 링크 및 자료 모음 졸리운_곰 2023.04.01 55
1128 [ 一日30分 인생승리의 학습법] AI Code Helper chatgpt vscode 플러그인 plugin file 졸리운_곰 2023.04.01 69
1127 [ 一日30分 인생승리의 학습법] 데이터 활용 시대의 필수 역량, 데이터 리터러시 제대로 하는 3가지 방법 file 졸리운_곰 2023.03.30 26
1126 [ 一日30分 인생승리의 학습법] 데이터 리터러시(Data Literacy)를 올리는 방법 file 졸리운_곰 2023.03.30 50
1125 [ 一日30分 인생승리의 학습법] 도커를 이용해 쉽게 IRC 서버 구축하기 file 졸리운_곰 2023.03.25 36
1124 [ 一日30分 인생승리의 학습법] IRC 사용법 졸리운_곰 2023.03.25 35
1123 [ 一日30分 인생승리의 학습법] [서비스] IRC 서버 구축 방법 졸리운_곰 2023.03.25 34
1122 [ 一日30分 인생승리의 학습법] 베이그런트(Vagrant) 튜토리얼, 개발 환경 공유와 가상 머신 관리를 위한 커맨드라인 도구 졸리운_곰 2023.03.10 56
1121 [ 一日30分 인생승리의 학습법] 나만 알고싶은 Vagrant 사용법 file 졸리운_곰 2023.03.10 35
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED