Linux Server - Apache 실습 (3 / 4) : vhosts (가상호스트) - 하나의 컴퓨터에서 여러 ip로 홈페이지 출력
▣ Apache
◎ 가상 호스트
가상 호스트는 외부에서 보기에 하나의 컴퓨터인지 모른다.
하지만 치명적인 단점이 존재 : 부여 받을 수 있는 ip의 수는 한정적이다.
현재는 이러한 단점 때문에 사용하지 않는다.
- 사용법
1. 퍼미션이 있어야한다.
2. 디렉토리가 존재하여야한다.
3. 디렉토리의 하위에 index.html이 존재해야한다.
※ 2, 3번째 227, 228번 ip를 사용
실습 1) IP 기반 Virtual Host 생성
실습 2) 두 개의 가상호스트에 DNS 서버를 이용해 도메인 명을 부여
◎ 실습 1) IP 기반 Virtual Host
1. /app/apache/conf/httpd.conf 파일을 수정
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidzrQXq2DYLYZTznJhaOsxvN9RMGJlFJ1_bDk-xY6_0KWBzzOk3DK1q1oOla0p-_uyq-2wszDEtLugy5aCbm8NmP4d7Flvp-uaY26TIqaMslVfMBA8DGePYuoliNhIDmYP-IEgGfioyxw/s400/conf+%25EC%25B6%2594%25EA%25B0%2580.PNG)
2. 유저 계정 생성 및 디렉토리 Other 권한 부여
1) #useradd -g 600 -u 604 httpd
-httpd 계정의 홈 디렉토리에서
2) #mkdir 227 - 두 번째 아이피
3) #mkdir 228 - 세 번째 아이피
4) #vi ./227/index.html - 생성 후 텍스트 입력
5) #vi ./228/index.html - 생성 후 텍스트 입력
6) 권한 부여
# chmod o+rx ./ - 홈 디렉토리의 other권한 부여
3. 가상 호스트를 설정하기 위해서는 해당 아이피의 가상 랜카드를 설정해주어야 함.
1) cd /etc/sysconfig/network-scripts - 랜 카드 정보가 담겨있는 디렉토리로 이동
2) 2개의 가상 아이피를 추가하므로 2개의 가상 랜카드를 추가 (ip는 컴퓨터당 1개!)
#cp -arpf ifcfg-eth0 ifcfg-eth0-1 (ip는 227)
#cp -arpf ifcfg-eth0 ifcfg-eth0-2
- 위와 같은 양식으로 수정 (ip는 228로)
4. network 서비스와 apache 서비스 재시작
#service network restart
- 사용중인 ip로 설정하였다면 충돌이 발생한다
#/app/apache/bin/apachectl restart
5. 결과 확인
- 227 웹페이지
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjepdtflwl6vy_fekCUj3bZ1Hcaa0669K25ZynFIkYUYCHzqJKdVC9rw64vSb-KevpRTumKQjime92puuqK4ciAPvHS1RohN4TeBtDiFxNbwv4a1CyYutY8rkTvL1W_dV9ztJ_pmp1TR-o/s400/227.PNG)
- 228 웹페이지
◎ 가상 호스트
가상 호스트는 외부에서 보기에 하나의 컴퓨터인지 모른다.
하지만 치명적인 단점이 존재 : 부여 받을 수 있는 ip의 수는 한정적이다.
현재는 이러한 단점 때문에 사용하지 않는다.
- 사용법
1. 퍼미션이 있어야한다.
2. 디렉토리가 존재하여야한다.
3. 디렉토리의 하위에 index.html이 존재해야한다.
※ 2, 3번째 227, 228번 ip를 사용
실습 1) IP 기반 Virtual Host 생성
실습 2) 두 개의 가상호스트에 DNS 서버를 이용해 도메인 명을 부여
◎ 실습 1) IP 기반 Virtual Host
1. /app/apache/conf/httpd.conf 파일을 수정
2. 유저 계정 생성 및 디렉토리 Other 권한 부여
1) #useradd -g 600 -u 604 httpd
-httpd 계정의 홈 디렉토리에서
2) #mkdir 227 - 두 번째 아이피
3) #mkdir 228 - 세 번째 아이피
4) #vi ./227/index.html - 생성 후 텍스트 입력
5) #vi ./228/index.html - 생성 후 텍스트 입력
6) 권한 부여
# chmod o+rx ./ - 홈 디렉토리의 other권한 부여
3. 가상 호스트를 설정하기 위해서는 해당 아이피의 가상 랜카드를 설정해주어야 함.
1) cd /etc/sysconfig/network-scripts - 랜 카드 정보가 담겨있는 디렉토리로 이동
2) 2개의 가상 아이피를 추가하므로 2개의 가상 랜카드를 추가 (ip는 컴퓨터당 1개!)
#cp -arpf ifcfg-eth0 ifcfg-eth0-1 (ip는 227)
#cp -arpf ifcfg-eth0 ifcfg-eth0-2
- 위와 같은 양식으로 수정 (ip는 228로)
4. network 서비스와 apache 서비스 재시작
#service network restart
- 사용중인 ip로 설정하였다면 충돌이 발생한다
#/app/apache/bin/apachectl restart
- 227 웹페이지
- 228 웹페이지
◎ +추가 실습)
- 기존 방식의 유저 계정 디렉토리의 하위에 만들었던 html 파일을 "/httpd/(ip번호)/"
디렉토리의 하위로 통합하여 webmaster 계정으로 수정이 가능하게 바꿔봅시다.
1) "/httpd/227" 와 "/httpd/228" 디렉토리를 생성한다.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMPOi81makLUBMm4t51boS8aMe_PMsUskHHWNDpacnIeh-__uQqbFh2iXoGQCb-MMZ7LEt4kEPcXyqd83fwR2MLvKQg9r09tOf3Y_v5-0gaJCxtAwNa1YDs1JVQo3z7T_Ua0P_y4V9NmA/s400/1%2529.PNG)
2) "/httpd" 디렉토리의 소유자 권한을 webmaster(유저):web(그룹) 으로 수정해준다.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMfy9A5VfOdnnLDiXZnCb-eYaAHX8HZ7MIXyNSFrj7CzM3TLobatWNkiCKimn731TDTihOYSwJNRaE1q-JS1qnf3eaHyxAO4YaPNPksnuZm0PtWwU4Y9cZpFFOnGmpEWv-WxKvj7peSss/s400/2%2529.PNG)
3) su 명령어로 webmaster로 이동
# su - webmaster
4) webmaster 계정으로 index 파일을 수정해보자
- 성공한 예제의 바른 예
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh4cKRxoKqwORGlRt_pUeOQ5g8xFP9xWJ6kVDJ0fqnEoOt1SiwkSzXYBaL8jNo5cLr45IbiBUJJ_BzY0Plz9NAoH1NUbnMqZ7ro3LXIVDY99EGo_C1H_Iaq2rawYTNqg7stNg9GDRZTrg/s400/%25EB%25B0%2594%25EB%25A5%25B8+%25EC%2598%2588.PNG)
◎ 실습 2) 두 개의 가상호스트에 DNS 서버를 이용해 도메인 명을 부여
- 준비물 : DNS Server (.230)
1) /etc/named.conf 수정
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ZpiQWd5L8_qQOP6WTgDHBbpRLE3Uq-w3yJDCZP9CSWRs0FKf-q3GoPlgZ2Scx3eyPXwd2uul4GKaE2GxnrjksH363BLKE3i1IrE8c10qU-QA5VeAYA6e0BMftlTPXsU3AaF0fG3sShE/s400/1%2529+dns.PNG)
2) /var/named/ast008.zone 생성
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUvLKjIQ9cdmKL-n6CCbWZf3tJJ8pG3XPVJk8PsvfayYedBEnMhN5y6QEn405tT5W5oGHgqh2pQ40vi8oDe0WyOJq-7uSzpJfJzJwNIlbMyxg3ql8HPkWRfCu8cA5Tj11n47etMFunFCw/s400/2%2529+dns.PNG)
3) /var/named/ast008-1.zone 생성
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc7X2ZwSizIZKYRnctAA77mTpNu5EXTqBK0aozYi7sCJrGY4tEu-cha_P6g6MVjPaMJMbbLS0K-COV1n9IdLqQQMb8gVI-vLtGO5qfkctcLUCS0GO032ZOwzqsdWxOO8XAbdnXtC5Z8rM/s400/3%2529+dns.PNG)
4) #service named restart
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBf1EnEWEIrxeTc4HX_ismTMJS-YwfIOw5l3nBTOgmPxWVTTGIMZadDW0HuEtYnJvEY76Mv0IjMbHlBQWmF7xJeCz5iN8PMeSwifSDmEjtRQh5banbrQMu1XfulhWtDxx-F7QTIyXWUeg/s400/4%2529+dns.PNG)
5) 확인해봅시다.
- 기존 방식의 유저 계정 디렉토리의 하위에 만들었던 html 파일을 "/httpd/(ip번호)/"
디렉토리의 하위로 통합하여 webmaster 계정으로 수정이 가능하게 바꿔봅시다.
1) "/httpd/227" 와 "/httpd/228" 디렉토리를 생성한다.
2) "/httpd" 디렉토리의 소유자 권한을 webmaster(유저):web(그룹) 으로 수정해준다.
3) su 명령어로 webmaster로 이동
# su - webmaster
4) webmaster 계정으로 index 파일을 수정해보자
- 성공한 예제의 바른 예
◎ 실습 2) 두 개의 가상호스트에 DNS 서버를 이용해 도메인 명을 부여
- 준비물 : DNS Server (.230)
1) /etc/named.conf 수정
2) /var/named/ast008.zone 생성
3) /var/named/ast008-1.zone 생성
4) #service named restart
5) 확인해봅시다.
댓글
댓글 쓰기