linux

[LINUX] Apache VirtualHost로 도메인 여러개 서비스 설정 방법

광돌ol 2023. 5. 17. 17:10
728x90
Virtual Host(가상 호스트)는 하나의 서버에서 여러 웹사이트를 서비스함을 의미합니다.
예시로 기존 서버를 www.aaa.com을 운영하고 있는데 서비스가 다른 www.bbb.com을 웹서버로 추가하여 운영을 하고자 한다 했을 경우
서버는 한대이고 , IP도 하나입니다.
두 도메인은 같은 ip로 설정되어 있는데, 각각의 도메인으로 접속을 했을 때는 서로 다른 화면을 보여주려고 한다면 어떻게 해야할까요?
이럴 경우 사용하는 것이 Virtual Host입니다.
예시)
실습 환경 CentOs 7
방화벽 - off
Apache/2.4.6
먼저 apache httpd 설정 경로로 이동합니다(apache는 nginx와 동일한 역할)
경로 : /etc/httpd/conf.d/

 

conf.d 폴더
특정 (파일명).conf 접속 또는 생성
기본 VIrtualHost 생성
<VirtualHost *:80>
    ServerName www.aaa.com ## 도메인 이름
    ServerAlias aaa.com ## 도메인 가명
     
    JKMount /* utf8

    DocumentRoot "/" ## 루트 디렉토리 경로
    
    <Directory (루트 디렉토리 경로)>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    RewriteEngine on
    RewriteCond %{SERVER_NAME} = url(도메인) [OR] 
    RewriteCond %{SERVER_NAME} = url(도메인)
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URL} [END,NE,R=permanent]

    CustomLog ## 로그 생성 위치
    ErrorLog ## 에러 로그 생성 위치
</VirtualHost>

<VirtualHost *:443>
   ServerName www.aaa.com ## 도메인 이름
    ServerAlias aaa.com ## 도메인 가명
     
    JKMount /* utf8


    DocumentRoot "/" ## 루트 디렉토리 경로
    
    <Directory (루트 디렉토리 경로)>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    LogLevel warn
    
    SSLEngine on
    SSLProtocol All -SSLv2
    SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP:!kEDH:!aNULL
    
    SSLCertificateFile ~
    SSLCertificatekeyFile ~
    SSLCertificateChainFile ~

    <Files ~ "\.(cgi | shtml | |phtml | php3?$">
        SSLOptions +StdEnvVars
    </Files>


    CustomLog ## 로그 생성 위치
    ErrorLog ## 에러 로그 생성 위치
</VirtualHost>

<VirtualHost  *80>
        ServerName www.aaa.com ## 도메인 이름
    ServerAlias aaa.com ## 도메인 가명
    Redirect ## 이동할 도메인
</VirtualHost>

 

반응형