Apache에서 여러 개의 vhost를 사용하는 경우는 언제일까?

단일 web 서버에서 여러 개의 서비스를 운영해야 할 경우이다.

사용량이 많지 않은 서비스 여러 개를 구축할 경우에 유용할 것이다.

 

목표

   -하나의 Apache 서버로 3개의 web 서비스를 구축하고, 각 서비스를 각각 1개, 총 3개의 was에 연동하기

 

 

vhost 설정 파일 리스트

1. httpd.conf

   -apache 관련 기본 설정 파일로, vhost를 사용할 수 있도록 설정 변경을 할 것이다.

 

2. mod_jk.conf

   -workers.properties 파일을 import할 것이다.

 

3. workers.properties

   -각 vhost를 Tomcat과 연동하는 역할을 수행할 것이다.

 

4. httpd_vhosts.conf

   -각 vhost 별 세부 설정 파일이다.

    

이제, 파일 별 설정을 상세 기재한다.

 

 

1. httpd.conf (/apache/conf/httpd.conf)

 

IncludeOptional conf.d/*.conf                                           //이 부분을 주석 제거 or 삽입

-Apache 홈 폴더의 conf.d 내에 있는 모든 .conf 파일을 import

[root@clsepctest conf.d]# pwd
/etc/httpd/conf.d
[root@clsepctest conf.d]# ls
autoindex.conf  httpd-vhosts.conf  mod_jk.conf  README  ssl.conf.bak  userdir.conf  welcome.conf

-이를 통해 vhosts, mod_jk 파일이 추가됨

 

 

2. mod_jk.conf (/apache/conf/mod_jk.conf)

 

JkWorkersFile "conf/workers.properties"

-workers.properties 설정 추가

 

 

3. workers.properties (/apache/conf/workers.properties)

 

worker.list=tomcat1, tomcat2, tomcat3

-vhost 별 설정 위해 세 개의 worker list 선언
-was 서버의 IP 설정

#svc1 Tomcat
worker.tomcat1.type=tomcat1
worker.tomcat1.host=10.50.50.51
worker.tomcat1.port=8009

#svc2 Tomcat
worker.tomcat2.type=tomcat2
worker.tomcat2.host=10.50.50.52
worker.tomcat2.port=8009

#svc3 Tomcat 
worker.tomcat3.type=tomcat3
worker.tomcat3.host=10.50.50.53
worker.tomcat3.port=8009 

-시스템 대상 별 ip와 포트 설정

 

 

4. httpd-vhosts.conf (/apache/conf/extra/httpd-vhosts.conf)

 

Listen 80

#vhost1 번 설정

    ServerAdmin myMailAddr@email.com              //admin 메일 주소 입력

    DocumentRoot "/svc1_data/project/svc1"          //DocumentRoot 설정
    <Directory "/svc1_data/project/svc1">              //Source Directory 설정
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    
        DirectoryIndex index.html                          //시작 파일 설정

        ServerName svc1.mydomain.com                //서비스 Domain 입력
        ServerAlias 10.50.50.51                             //was 서버 IP 입력 (Alias)
        CustomLog "|/usr/sbin/rotatelogs logs/access_sess_log.%Y%m%d 86400" common
        ErrorLog    "|/usr/sbin/rotatelogs logs/error_sess_log.%Y%m%d 86400

        JKMount /svc1/* tomcat1                          //WAS에서 처리할 파일 종류 입력 (All)

 

#vhost2 번 설정

    ServerAdmin myMailAddr@email.com              //admin 메일 주소 입력

    DocumentRoot "/svc2_data/project/svc2"         //DocumentRoot 설정
    <Directory "/svc2_data/project/svc2">             //Source Directory 설정
        Options FollowSymLinks 
        AllowOverride All 
        Require all granted 
     
        DirectoryIndex index.html                          //시작 파일 설정

        ServerName svc2.mydomain.com               //서비스 Domain 입력
        ServerAlias 10.50.50.52                            //was 서버 IP 입력 (Alias)
        CustomLog "|/usr/sbin/rotatelogs logs/access_sess_log.%Y%m%d 86400" common 
        ErrorLog    "|/usr/sbin/rotatelogs logs/error_sess_log.%Y%m%d 86400 

        JkMount /*.do tomcat2                               //WAS에서 처리할 파일 종류 입력
        JkMount /*.jsp tomcat2
        #JkMount /*.js tomcat2
        JkMount /loginUserCheck  tomcat2
        JkMount /*.hmd tomcat2
        JkMount /*.json tomcat2

#.do / .jsp / .js / loginUserCheck 들어가는 url / .hmd / .json 을 was에서 처리하도록 설정

 

#vhost3 번 설정

    ServerAdmin myMailAddr@email.com              //admin 메일 주소 입력

    DocumentRoot "/svc3_data/project/svc3"         //DocumentRoot 설정
    <Directory "/svc3_data/project/svc3">             //Source Directory 설정
        Options FollowSymLinks 
        AllowOverride All 
        Require all granted 
     
        DirectoryIndex index.html                          //시작 파일 설정

        ServerName svc3.mydomain.com               //서비스 Domain 입력
        ServerAlias 10.50.50.53                            //was 서버 IP 입력 (Alias)
        CustomLog "|/usr/sbin/rotatelogs logs/access_sess_log.%Y%m%d 86400" common 
        ErrorLog    "|/usr/sbin/rotatelogs logs/error_sess_log.%Y%m%d 86400 

        JKMount /svc3/* tomcat3                         //WAS에서 처리할 파일 종류 입력 (All)

 

5. hosts (/etc/hosts)

 

10.10.10.10 svc1.mydomain.com svc2.mydomain.com svc3.mydomain.com

 

/etc/hosts 파일에 각 ServerName을 등록한다.

 

 

이렇게 설정한 후 Apache를 재시작하면 설정이 적용된다.

 

끝.

+ Recent posts