리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

특정 ip의 도메인 확인한다.

같은 ip지만 다른 도메인에서 서로 다른 웹페이지 열리도록 설정할 것이다.

도메인 이름 기반 호스트

conf/extra/httpd-vhosts.conf 파일 설정

NameVirtualHost *:80 ← * 대신 IP 지정이 가능하다.


<VirtualHost *:80>
ServerAdmin [메일 주소]
DocumentRoot "[Web 홈 디렉토리]"
ServerName [접속 도메인명]
ServerAlias [별명]
ErrorLog "logs/[에러 로그 파일명]"
CustomLog "logs/[접속 로그 파일명]" common
</VirtualHost>

httpd.conf 에서 extra/httpd-vhosts.conf 파일에 대한 include 설정이 필요하다.

주의 사항
• 호스팅 디렉토리에 대한 접근 설정이 유효  //해당 디렉토리 퍼미션 있어야함
• conf/extra/httpd-vhosts.conf를 참고 
• apache 설정보다 name server설정이 우선
• 호스팅 중인 호스트명이 name 서버에서 확인
• 시스템의 호스트명과 /etc/hosts에 기록된 이름이나 IP를 동일하게 설정

실습

실습내용

웹서버 아파치에 가상 호스트 설정

ip 하나에 2개 도메인 설정

DNS 서버 : 192.168.10.131

Apache 서버 : 192.168.10.133

클라이언트 192.168.10.139

실습 과정

1) DNS 서버에 두개 도메인 설정하기

   192.168.10.131 컴퓨터에 ip주소 192.168.10.133 www.st04.sec , www.st04.itc 설정

2) Apache 서버에 /app/apache/conf/extra 설정하기

3) 클라이언트 (192.168.10.139)에서 확인

1) DNS 서버에 두개 도메인 설정하기

   192.168.10.131 컴퓨터에 ip주소 192.168.10.133 www.st04.sec , www.st04.itc 설정

DNS 서버에서 /etc/named.conf 파일 확인

# vi /etc/named.conf

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

zone 파일 확인

st04.zone

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

st04_itc.zone 

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

권한 변경

# /var/named/* 모두 그룹 소유자를 named로 변경한다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

named.service를 재시작한다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

host 를 잘 받아오는 것을 확인한다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

2) Apache 서버에 /app/apache/conf/extra 설정하기

ip주소기반으로 ip를 두개 설정해 줬었던 ens32:0을 삭제해줄 것이다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

/etc/sysconfig/network-scripts/ifcfg-ens32:0를 삭제한다.

네트워크를 재시작한다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

ipconfig를 통해 ens32:0이 삭제된 것을 확인할 수 있다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

/app/apache/conf/httpd.conf 파일 수정

# vi /app/apache/conf/httpd.conf 여기서 ip 주소 기반으로 지정해줬던 Virtual hosts 는 삭제해준다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

conf/extra/httpd-vhosts.conf 를 사용할 것이므로 주석은 제거한다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

/app/apache/conf/extra/httpd-vhosts.conf 파일 수정

# vi /app/apache/conf/extra/httpd-vhosts.conf 파일에 VirtualHost를 추가해 수정한다. 

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong
NameVirtualHost 192.168.10.133:80

<VirtualHost 192.168.10.133:80>
        DocumentRoot "/home/httpd/html/sec"
        ServerName www.st04.sec
        ServerAlias st04.sec
        ErrorLog "logs/sec01_error_log"
        CustomLog "logs/sec01_log" common
        <Directory "/home/httpd/html/sec">
        Options Indexes FollowSymlinks
        Order allow,deny
        Allow from All
        </Directory>
</VirtualHost>

<VirtualHost 192.168.10.133:80>
        DocumentRoot "/home/httpd/html/itc"
        ServerName www.st04.itc
        ServerAlias st04.itc
        ErrorLog "logs/itc01_error_log"
        CustomLog "logs/itc01_log" common
        <Directory "/home/httpd/html/itc">
        Options Indexes FollowSymlinks
        Order allow,deny
        Allow from All
        </Directory>
</VirtualHost>

도메인별 다큐멘트 루트 디렉토리 생성

/home/httpd/html/sec, /home/httpd/html/itc 디렉토리를 생성한다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

각 디렉토리에 index.html 파일을 생성해준다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

도메인별로 접속해서 확인하기 위해index.html 파일에 테스트 문구를 넣어준다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

아파치 서비스를 재시작해준다.

# /app/apache/bin/apachectl restart

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

3) 클라이언트에서 확인

192.168.10.139 컴퓨터에서 DNS 주소를 192.168.10.131로 변경하고 테스트를 진행한다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

 www.st04.sec/ , www.st04.itc/ 를 접속해본다.

리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong
리눅스 httpd.conf 설정 - linugseu httpd.conf seoljeong

접속이 잘 되는 것을 확인할 수 있다.