지난 포스트에 이어 웹 서버에 IP기반 VirtualHost를 설정해본다.
VitrualHost란 한 대의 서버에 여러 웹 서비스를 호스팅하는 기법을 말한다.
IP기반 VirtualHost는 이를 IP기반으로 구현하는 것으로,
한 대의 서버에 여러 IP를 부여(IP aliases)하고 각 IP에 서로 다른 웹 서비스를 호스팅하는 기법이다.
서버 환경은 다음과 같이 구성한다.
웹 서버
IP주소 : 192.168.10.172/24
도메인 : www.st07.sec
IP주소 : 192.168.10.173/24
도메인 : www.st07.itc
네임 서버
IP 주소 : 192.168.10.171/24
모든 실습은 VMware에서 진행하였다.
IP기반 VirtualHost 설정은 다음 순서로 진행한다.
1. 서버에 IP주소를 추가한다.
2. 웹 서버 홈 디렉터리를 생성한다.
3. 서버 설정을 변경한다.
4. 네임 서버 설정을 변경한다.
1. 서버에 IP주소를 추가한다.
네트워크 스크립트 파일을 새로 생성하는 방식으로 추가한다.
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-[NIC명] ifcfg-[NIC명]:0
# vi ifcfg-[NIC명]:0
복사한 스크립트 파일의 디바이스명과 IP주소를 변경한다.
네트워크를 재시작하고 확인한다.
# systemctl restart network
# ifconfig
2. 웹 서버 홈 디렉터리를 생성한다.
이전에 생성한 html 디렉터리는 사용하지 않는다.
삭제하거나 내버려 두어도 무방하다.
# mkdir -p /home/httpd/sec
# mkdir -p /home/httpd/itc
3. 서버 설정을 변경한다.
서버 설정 파일(httpd.conf) 편집
# vi /app/apache/conf/httpd.conf
전역 DocumentRoot "/home/httpd/"로 수정
설정파일의 기존 <Directory "/home/httpd/html"> ... </Directory> 부분
<Directory "/home/httpd/"> ... </Directory>로 수정
아래 내용 추가
파일 내 위치는 상관없으나 적절히 보기 좋은 곳에 작성해야 유지보수에 용이하다.
<Directory "/home/httpd/sec">
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<Directory "/home/httpd/itc">
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
설정 파일에 다음 VirtualHost 설정 추가
<VirtualHost 192.168.10.172:80>
DocumentRoot /home/httpd/sec
ServerName 192.168.10.172
</VirtualHost>
<VirtualHost 192.168.10.173:80>
DocumentRoot /home/httpd/itc
ServerName 192.168.10.173
</VirtualHost>
서버 설정을 변경했으므로 Apache 서버를 재시작한다.
# /app/apache/bin/apachectl restart
4. 네임서버 설정을 변경한다.
구축한 웹 서버 도메인에 대한 정보를 x.171번 네임서버에 설정한다.
x.171번 서버에 접속하여 DNS 설정 파일을 편집한다.
# vi /etc/named.conf
named.conf 내용
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "st07.sec" {
type master;
file "st07.sec.zone";
};
zone "st07.itc" {
type master;
file "st07.itc.zone";
};
zone 파일을 편집한다.
# vi /var/named/st07.sec.zone
st07.itc.zone 파일 내용
$TTL 1D
@ IN SOA ns.st07.itc. root.ns.st07.itc. (
1 ; Serial
1D ; Refresh
1H ; Retry
1W ; Expire
3H ) ; Minimum
; Name Server
IN NS ns.st07.itc.
; Host address
IN A 192.168.10.171
ns IN A 192.168.10.171
www IN A 192.168.10.172
# vi /var/named/st07.itc.zone
st07.itc.zone 파일 내용
$TTL 1D
@ IN SOA ns.st07.itc. root.ns.st07.itc. (
1 ; Serial
1D ; Refresh
1H ; Retry
1W ; Expire
3H ) ; Minimum
; Name Server
IN NS ns.st07.itc.
; Host address
IN A 192.168.10.171
ns IN A 192.168.10.171
www IN A 192.168.10.173
DNS 서비스를 재시작한다.
# systemctl restart named
테스트
웹 서버 홈 디렉터리에 웹 페이지를 업로드하고 브라우저로 테스트한다.
# cd /home/httpd/sec
# echo welcome to www.st07.sec! > index.html
# chmod o+x index.html
# cd /home/httpd/itc
# echo welcome to www.st07.itc! > index.html
# chmod o+x index.html
'System > Server' 카테고리의 다른 글
Oracle, php 연동 Apache 웹 서버 구축 (0) | 2023.05.02 |
---|---|
Apache 웹 서버 구축 실습(Linux) (2) | 2023.02.21 |
DNS 서버 구축 실습 (리눅스 환경, bind) (0) | 2023.02.20 |
로컬 DNS 서버의 동작 과정 (0) | 2023.02.15 |
로컬 DNS 서버, 캐시 DNS 서버, 책임 DNS 서버 (0) | 2023.02.15 |