Apache에서 이름 기반 VirtualHost를 분배

3946 단어 아파치

아파치에 의한 분배 패턴


  • IP 주소 기반
  • 포트
  • FQDN(ServerName)

  • 3가지의 분류 방법이 있다.
    이번은 FQDN(ServerName) 로 검증합니다

    FQDN 기반 VirtualHost



    하나의 IP 주소에 복수의 FQDN을 지정해, 각각 다른 Web 서버를 참조하게 하고 싶다.
    웹 브라우저가 보내는 http 요청에 Host 헤더가 필요하지만 대부분의 브라우저에서 대응하고 있다.

    환경


  • Amazon Linux 2
  • httpd-2.4.39-1.amzn2.0.1.x86_64
  • 보안 그룹



  • 절차



    Apache 설치


    
    yum -y update
    yum -y install httpd
    systemctl start httpd
    

    각 DocumentRoot 만들기


    mkdir /var/www/web10 /var/www/web20 /var/www/web30
    echo 'web10.vamdemicsystem.black name-base web-site.' > /var/www/web10/index.html
    echo 'web20.vamdemicsystem.black name-base web-site.' > /var/www/web20/index.html
    echo 'web30.vamdemicsystem.black name-base web-site.' > /var/www/web30/index.html
    

    httpd.conf의 마지막 줄에 추가



    ip 주소가 1개 밖에 없으면 * 로 OK.
    복수 있으면 대응하는 IP 주소를 쓴다.

    /etc/httpd/conf/httpd.conf
    # Add VirtualHost
    NameVirtualHost *
    <VirtualHost *:80>
            ServerName      web10.vamdemicsystem.black
            DocumentRoot    /var/www/web10
    </VirtualHost>
    <VirtualHost *:80>
            ServerName      web20.vamdemicsystem.black
            DocumentRoot    /var/www/web20
    </VirtualHost>
    <VirtualHost *:80>
            ServerName      web30.vamdemicsystem.black
            DocumentRoot    /var/www/web30
    </VirtualHost>
    

    설정 불러오기


    systemctl restart httpd
    

    동작 확인



    서버 자체에서



    호스트에 각각의 FQDN 작성
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost6 localhost6.localdomain6
    
    127.0.0.1   web10.vamdemicsystem.black
    127.0.0.1   web20.vamdemicsystem.black
    127.0.0.1   web30.vamdemicsystem.black
    

    curl로 확인하면 괜찮은 것으로 나누어진 것 같다. OK!
    localhost는 Web10을 다루는 이유는 무엇입니까?
    [root@ip-172-31-38-89 ~]# curl http://web10.vamdemicsystem.black
    web10.vamdemicsystem.black name-base web-site.
    [root@ip-172-31-38-89 ~]# curl http://web20.vamdemicsystem.black
    web20.vamdemicsystem.black name-base web-site.
    [root@ip-172-31-38-89 ~]# curl http://web30.vamdemicsystem.black
    web30.vamdemicsystem.black name-base web-site.
    [root@ip-172-31-38-89 ~]# curl http://web40.vamdemicsystem.black
    curl: (6) Could not resolve host: web40.vamdemicsystem.black
    [root@ip-172-31-38-89 ~]# curl http://localhost
    web10.vamdemicsystem.black name-base web-site.
    [root@ip-172-31-38-89 ~]#
    

    외부에서도 확인



    DNS 서버에 등록


    web10OK!


    web20OK!


    web30OK!

    좋은 웹페이지 즐겨찾기