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를 재시작하면 설정이 적용된다.
끝.
'IT | Middleware > Apache' 카테고리의 다른 글
[Apache] 무료 SSL 인증서 CertBot 갱신 방법 (0) | 2020.02.17 |
---|---|
[Apache] Certbot (무료 SSL 인증서) 설치 및 적용 방법 (0) | 2020.02.16 |
[Apache | 튜닝] keepAlive 옵션 설정하기 (0) | 2020.02.08 |
[Apache | 튜닝] httpd_mpm 설정 (0) | 2020.02.07 |
[APM 패턴 | Apache] Linux에 아파치 설치 및 설정 (소스 파일을 이용한 설치) (2) | 2019.12.22 |