이 름 : 바다아이
|
조회수 : 14445
짧은 주소 : https://www.bada-ie.com/su/?211591796022
이 글을 읽고 각자에게 생기는 일에 대해서 뒷 일은 전혀 책임 안 집니다. 글 내용 중 틀렸거나 고칠 부분이 있으면 연락주세요... ^^)
ppp 접속만 된다면 누구나 해 볼 수 있는 가상 호스팅 실습 한 컴퓨터 안에 각기 다른 도메인 네임을 가진 웹 사이트를 운영하는 가상 호스팅의 설정에 관한 작업을 정리한 것. 가상 호스팅 실습은 비싼(?) 사용료를 내야하는 고정 ip를 가진 전용선과 어딘가의 네임서버에 등록된(공인된) 도메인 네임이 있어야 된다고 생각하겠지만, 실제 마음만 먹으면 그런 것 없어도 해 볼 수 있습니다.
준비물
필요한 것
실제 내가 준비한 것
설명
리눅스 박스
우리집 리눅스 박스
아파치 1.3.x
아파치 서버가 제대로 설치된 것
위의 리눅스 박스의 도메인 네임
hamyd.homeip.net
외부에서 들어올 수 있는 실제 도메인 네임
ppp접속하는 사람도 dyndns.org에 가면 만들 수 있음
위의 도메인 네임에 할당된 ip address
211.38.173.35
(2000년 4월 20일 현재)
영구적 고정 아니더라도 상관없음
(테스트 해보는 동안에라도 일정하기만 하면 됨)
가상 호스팅해 볼 도메인 네임들
drpeds.homeip.net
drham.homeip.net 등등
물론 이들 도메인에도 ip 주소가 부여될 수 있어야 함
역시 dyndns.org에 가면 만들 수 있음
알고 있어야 할 것
아파치 서버 운영 방법 : 좀더 구체적으로 말하면 start, stop, restart 시키는 법 ^^)
아파치 설정 파일 httpd.conf 에 대한 이해 : 아파치 설정에 대해 많이 알고 있으면 곤란함 ^^)
vi 에디터 쓰는 법 : 실제로는 리눅스용 아래아 한글 써도 됨
실습해 봅시다.
도메인과 ip주소 확인
메인이 될 도메인 네임(default server)의 ip 주소를 확인
버추얼 호스팅할 도메인 네임들과 각각의 ip를 메인 도메인 네임의 ip와 일치시킴
(네임서버에서 버추얼 호스팅할 도메인들을 정해주어야 하겠지만,
자기 컴퓨터에서 네임서버를 돌리지 않는다면, 그렇다고 매번 바뀌는 ppp의 ip를 외부의 네임서버에
갱신 시켜주는 것은 무리이므로, 다이나믹 도메인 서비스를 이용해서 바꿔주었음)
아파치 설정 파일 httpd.conf 수정 ( Name Virtual Hosting 방법 )
: httpd.conf 의 맨 뒷 부분에 보면 Virtual host 설정 부분이 있는데 여기를 고치면 됨
참고로 여기에 나온 httpd.conf 의 UserDir 설정은 디폴트 값인 UserDir public_html 이 아니라
UserDir html 로 설정되어있고(즉 사용자 홈 디렉토리의 html 디렉토리안에 각자의 홈페이지 내용이 놓임
전체 DocumentRoot 는 /home/html 로 설정되어 있는 상태입니다.
[ httpd.conf ]
### Section 3: Virtual Hosts
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them.
# Please see the documentation at <URL:http://www.apache.org/docs/vhosts/>
# for further details before you try to setup virtual hosts.
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# If you want to use name-based virtual hosts you need to define at
# least one IP address (and port number) for them.
#
#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78
NameVirtualHost 211.38.173.35 이 부분에 호스트의 ip 주소를 넣는다.
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
#
#<VirtualHost ip.address.of.host.some_domain.com>
# ServerAdmin webmaster@host.some_domain.com
# DocumentRoot /www/docs/host.some_domain.com
# ServerName host.some_domain.com
# ErrorLog logs/host.some_domain.com-error_log
# CustomLog logs/host.some_domain.com-access_log common
#</VirtualHost>
#<VirtualHost _default_:*> 이건 뭔가 하면
#</VirtualHost>
<VirtualHost hamyd.homeip.net> hamyd.homeip.net 이란 도메인을
ServerAdmin hamyd@bigfoot.com 아파치의 DocumentRoot 디렉토리인 /home/html로 지정
DocumentRoot /home/html
ServerName hamyd.homeip.net
ServerAlias www.hamyd.homeip.net
# ErrorLog logs/drham-error_log
# CustomLog logs/drham-access_log common
</VirtualHost>
<VirtualHost drham.homeip.net> drham.homeip.net 이란 도메인을
ServerAdmin hamyd@bigfoot.com drham 이란 사용자의 홈 계정 html로 지정
DocumentRoot /home/drham/html PHP 프로그래밍 시 drham.homeip.net의
ServerName drham.homeip.net 환경 변수 $DOCUMENT_ROOT 값은 "/home/drham/html" 이 됨
ServerAlias www.drham.homeip.net
ErrorLog logs/drham-error_log
CustomLog logs/drham-access_log common
</VirtualHost>
<VirtualHost drpeds.homeip.net> drpeds.homeip.net 이란 도메인을
ServerAdmin hamyd@bigfoot.com drpeds 란 사용자의 홈 계정 html로 지정
DocumentRoot /home/drpeds/html PHP 프로그래밍 시 drpeds.homeip.net의
ServerName drpeds.homeip.net 환경 변수 $DOCUMENT_ROOT 값은 "/home/drpeds/html" 이 됨
ServerAlias www.drpeds.homeip.net
ErrorLog logs/drham-error_log
CustomLog logs/drham-access_log common
</VirtualHost>
맨 앞에 나오는 <Virtual Host> ... </Virtual Host> 가
디폴트 서버가 되는 데 뒤에 나오는 걸 지정하는 방법은 없는 걸로 알고 있음
그리고 <VirtualHost _default_:*> 라는 것은 가상 호스트 설정에서 맨 마지막에 써 주는 것으로,
가상 호스트 설정에 맞는 게 하나도 없을 때 디폴트가 설정되는 가상호스트입니다.
http://www.apache.org/docs/vhosts/examples.html에 보시면 자세한 예제를 볼 수 있습니다.
아파치 버추얼 호스팅 설정 확인
httpd -S 옵션을 사용하시면 됩니다.
다음은 위의 설정으로 테스트해 본 것입니다.
[root@mrham /usr/local/apache/conf]# /usr/local/apache/bin/httpd -S
VirtualHost configuration:
211.38.173.35:80 is a NameVirtualHost
default server hamyd.homeip.net (/usr/local/apache/conf/httpd.conf:876)
port 80 namevhost hamyd.homeip.net (/usr/local/apache/conf/httpd.conf:876)
port 80 namevhost drham.homeip.net (/usr/local/apache/conf/httpd.conf:885)
port 80 namevhost drpeds.homeip.net (/usr/local/apache/conf/httpd.conf:894)
아파치 재 실행
이제 모든 설정이 제대로 되었으면 아파치를 재 실행 하시면 됩니다.
저같이 아파치를 컴파일해서 쓰는 경우는
/usr/local/apache/bin/apachectl restart<ENTER> 하시면 되겠죠.
그리고 나서 위에서 설정한 여러 도메인으로 웹브라우저를 통해 들어가 보세요.
Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb + PgBouncer + ProxySQL]
서버위치 : 오라클 클라우드 춘천 실행시간 : 0.03909 초 to webmaster... gogo sea. gogo sea.