일단 웹사이트의 기본원리에 대해 알 필요가 있다.
웹사이트는 익스플로러에 도메인을 치면 DNS(domain name server)에서 해당
도메인의 서버에 연결해주는 구조다.
인터넷익스플로러->도메인입력-> 해당 도메인에 설정된 DNS서버에 서버ip 요청->
해당 서버ip로 웹사이트 접속
서버에 세팅해야될건 간단히 3가지다.
네트워크, 아파치, DNS설정
1. 네트워크설정
루트로 vi편집기를 이용해 네트워크파일을 연다.
vi /etc/sysconfig/network
#네트워크사용여부
NETWORKING=yes
#호스트명, 아파치 세팅에 servername과같지않으면 문제가 발생할수 있다.
HOSTNAME=localhost
#게이트웨이주소
GATEWAY=203.241.205.254
#첫번째 랜카드로 설정
GATEWAYDEV=eth0
왠만한건 설정되있어서 게이트웨이만 설정하면된다.
IPADDR=61.2.44.15
NETMASK=255.255.255.0
아래 파일에 자동 생성 및 설정된다.
/etc/sysconfig/network-scripts/ifcfg-Auto_eth0
/etc/sysconfig/network-scripts/ifcfg-lo
필수값만 설정을 바꿔주면 된다.
네트워크 설정이 끝나면 네트워크를 리스타트한다.
/etc/init.d/network restart
네트워크 설정이 끝났다. 이제 DNS를 설정한다.
DNS설정은 3가지 방법이있다.
1. hosts파일에 ip와 도메인을 입력해서 자체적으로 처리하는방법
2. 외부에있는 DNS서버에서 조회하는방법
3. 자체적으로 DNS를 구현해서 조회하는방법
1번방법은 서버 /etc/hosts 파일에 ip와 도메인을 적어 DNS에서 서버ip를 조회하지 않더라도
해당 도메인을 접속하면 hosts파일에 기록된 도메인의 ip를 알려준다.
웹사이트가 추가될때마다 hosts에 추가해야되기때문에 번거롭다. 이 방법은 로컬에서
테스트할때나 사용하지 상용서비스에서는 잘 사용하지 않는다.
2번방법은 외부에 DNS서버가 있어서 해당 DNS서버에서 ip를 조회해온다.
상용서비스에서 많이 사용하는 방법이며 보통 대기업에서는 자체 DNS서버를 가지고있다.
/etc/resolv.conf 파일에 nameserver 부분에 해당 DNS서버 ip를 기재한다.
수정이 완료되면 nslookup 명령어를 이용해서 도메인을 입력 후 해당 DNS서버에서 도메인 ip를
제대로 조회하는지 확인한다.(해당 도메인의 address가 해당 서버로 되있는지 확인) 조회가 안되는건 DNS서버에 해당 도메인이 설정되지 않은것이다. 만약 address가 해당 서버와 다르면 dns변경을 요청해야한다.
3번방법은 1번과 다를게 없으며 자체서버에 DNS서버를 구현해야되기때문에 번거롭다.
다른 서버에서도 해당 서버에서 DNS조회해오면 모르겠지만 여기서는 생략하겠음.
웹사이트의 DNS조회순서는 hosts파일을 먼저 보고, 그다음 DNS설정으로 조회한다.
hosts에 먼저 조회하기때문에 같은 도메인을 세팅해놨다면 dns서버에서 가져올려고 했는데 hosts에 세팅된 도메인 ip로 접근할수도 있으므로 헷갈리지 않게 주의한다.(순서를 변경하는 방법도있으나 잘쓰이지 않으므로 여기서는 생략)
이제 아파치세팅만 남았다.
아파치에서는 버추얼 호스트만 잘 설정해주면된다.
아파치의 버추얼 호스트는 2가지 방식이 있다.
1. ip-based 버추얼호스트
<VirtualHost 210.22.255.1> 이런식으로 IP로 구분한다.
웹사이트가 1개라면 모르겠지만 여러개일경우 name-based 버추얼 호스트로 DNS조회하는 방식으로 하려면 사용하지 못한다.
2. name-based 버추얼 호스트
<VirtualHost www.aaa.com> 이런식으로 도메인으로 구분한다.
해당 설정된 도메인을 hosts와 DNS로 ip를 조회한다. hosts와 DNS에 도메인이 설정되있지 않다면
아파치 시작시 에러가 발생하므로 주의한다.
vi /usr/local/apache/conf/httpd.conf
예제는 aaa.com, bbb.com이라는 도메인이 있다는 가정하에 진행된다.
주의할점은 www가 없는 경우도 추가해야 한다는 점이다.
(Serveralias 설정은 제외됐다)
<VirtualHost www.aaa.com>
ServerAdmin webmaster@aaa.com
DocumentRoot /home/aaa/
ServerName www.aaa.com
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
</VirtualHost>
<VirtualHost aaa.com>
ServerAdmin webmaster@aaa.com
DocumentRoot /home/aaa/
ServerName aaa.com
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
</VirtualHost>
<VirtualHost www.bbb.com>
ServerAdmin webmaster@bbb.com
DocumentRoot /home/bbb/
ServerName www.bbb.com
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
</VirtualHost>
<VirtualHost bbb.com>
ServerAdmin webmaster@bbb.com
DocumentRoot /home/bbb/
ServerName bbb.com
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
</VirtualHost>
이제 아파치를 시작하면 설정이 끝난다.
여기까지 했다면 2차도메인 사이트 만드는것도 간단해진다.
abc.aaa.com를 추가하고 싶다면
<VirtualHost abc.aaa.com>
ServerAdmin webmaster@aaa.com
DocumentRoot /home/aaa/
ServerName abc.aaa.com
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
</VirtualHost>
간단해지는군. 대신 DNS서버에 해당 도메인이 설정되있다는 가정 하에.
리스타트...
/etc/rc.d/init.d/named restart
[출처] 리눅스 서버에 여러개의 웹사이트 구현하기|작성자 강동수
서브 도메인과 가상 호스트 설정 방법은 아래의 주소를 참고하기 바란다.
http://blog.daum.net/_blog/BlogTypeView.do?blogid=09VKU&articleno=13679267#ajax_history_home
새로운 도메인을 추가하는 경우, 아래의 처리들을 다시한번 확인해본다.
--------------------------------------------------------------------------------
[root@ns user]# vi /etc/resolv.conf
[root@ns user]# vi /etc/hosts <--- 신규 추가 시에 추가 필요
[root@ns user]# vi /etc/named.conf <--- 신규 추가 시에 추가 필요
[root@ns user]# vi /var/named/chroot/var/named/도메인주소.zone <--- 신규 추가 시에 생성 필요
[root@ns user]# ln -s /var/named/chroot/var/named/도메인주소.zone /var/named/도메인주소.zone
[root@ns user]# vi /usr/local/apache/conf/httpd.conf <--- 신규 추가 시에 추가 필요
[root@ns user]# /etc/rc.d/init.d/named reload
[root@ns user]# service named restart
[root@ns user]# service httpd restart
이제, 도메인을 등록한 사이트의 네임 호스트 관리에서 네임 호스트 및 IP주소를 추가하고,
네임서버를 네임 호스트 관리에서 입력한 네임 호스트로 입력하여 변경을 수행(보통, 등록한 사이트의 네임서버로 초기설정된 상태)
등록을 완료한 후에 ISP의 네임서버에 등록 및 변경이 수행되기까지는 약간의 시간이 필요하다.
잠시 후에 아래의 명령으로 정상 등록 및 변경여부를 확인한다.
[root@ns user]# nslookup 도메인주소
[root@ns user]# dig 도메인주소
시스템 > 관리 > 사용자 및 그룹에서 사용자를 추가 후에 권한을 변경한다.
[root@ns user]# chmod 711 /home/사용자
[root@ns user]# chmod 755 /home/사용자/www
[root@ns user]# chgrp -R star-r /home/사용자
[root@ns user]# chown -R star-r /home/사용자
DNS 설정을 위한 기본적인 파일들에 대해 알아본다.
--------------------------------------------------------------------------------
rpm -qa | grep bind 확인
* bind-9.3.6-16.P1.el5.rpm - bind 기본 패키지
* bind-libs-9.3.6-16.P1.el5.rpm - bind서버 패키지와 utils패키지에 의해 사용되는 라이브러리 포함
* bind-utils-9.3.6-16.P1.el5.rpm - name서버를 질의 하고 인터넷 호스트에 대한 정보를 찾아주는 유틸리티 모음
* caching-nameserver-9.3.6-16.P1.el5 - bind운영에 필요한 환경설정 파일 모음 패키지
없으면 yum으로 설치
ex) yum install bind
[네임서버 설정 파일]
기본적으로 이용되는 네임서버 파일
파일명 | 역할 |
/etc/sysconfig/named | Chroot를 적용할 네임서버 루트 디렉토리를 설정하는 파일로 rpm패키지에만 포함되어 있다. |
/etc/init.d/named | 네임서버 데몬을 띄워주는 init 스크립트 |
$/etc/named.caching-nameserver.conf | 네임서버 설정 파일로 chroot가 적용될 때는 /var/named/chroot/etc/ 디렉토리에 위치 |
/etc/rndc.key | 공유키 파일 설정 |
$/var/named/*.zone | /etc/named.ca에서 명시한 존 파일이 위치하는 장소로 chroot를 적용하는 경우에는 /var/named/chroot 디렉토리에 존 파일이 위치, 존 설정 파일 |
$/var/named.ca | 루트네임서버 캐쉬 파일. |
$/slaves/도메인이름.zone $/slaves/도메인이름.rev |
primary dns서버에서 받아온 정방향 역방향 조회영역이 저장되는 파일 |
출처: http://croak.tistory.com/94
'Linux > CentOS' 카테고리의 다른 글
사용자 계정 추가 (0) | 2012.09.03 |
---|---|
CentOS VNC 설정 및 사용법 (0) | 2012.08.31 |
Centos 5.x 서버에서 Windows XP로 rsync와 cwRsync를 이용해서 백업하기 (0) | 2012.04.11 |
php 5.4.0에서 5.3.10으로 다운그레이드 (0) | 2012.04.10 |
php.ini 설정법 (0) | 2012.04.10 |