오늘은 apache2 + tomcat6.0 버전을 연동하는 방법에 대하여 배워보도록 하겠습니다. :)
연동하는 즉슨 apache로 들어오는 도메인을 tomcat과 연결시켜 사용하기 위함인데요.
apache 내에 가상 호스트를 통해
1개의 웹서버에서 여러도메인을 연동시켜 사용할 수 있어 비용적으로 매우 효율적이기도 합니다.
Apache2 + Tomcat 6.0 연동하기
1. 주요 설정파일
연동하는데 있어 수정 및 생성해야하는 파일이 존재합니다.
파일에 대한 설명은 다음과 같습니다.
|
파일명 |
위치 |
설명 |
1 |
hrrpd.conf |
apache설치위치/conf |
apache 기본설정파일 |
2 |
workers.properties |
apache설치위치/conf |
AJP Connector를 통해 서비스하는 Application server를 등록하는 설정파일 |
3 |
mod_jk.conf |
다운 |
Apache와 Tomcat의 연동을 위해 AJP Connector Module을 apache에 load하는 설정파일 |
4 |
httpd-vhost.conf |
apache설치위치/extra/ |
한개의 apache파일에 다수의 tomcat을 설정하기 위해 생성된 관리 파일 |
5 | server.xml | tomcat설치위치/conf | tomcat 기본 설정파일 |
2. mod_jk 다운
mod_jk란 위에서도 설명을 했지만 apache와 tomcat을 연동해주는 connector입니다.
mod_jk 다운은 http://mirror.apache-kr.org//tomcat/tomcat-connectors/jk/binaries/windows/ 에서 다운가능합니다.
맨처음 파일을 다운받은 뒤 압축을 풀면 다음과 같이 나옵니다.
위에서 체크한 mod_jk.so 는 apache설치파일/conf 밑에 넣어줍니다.
3. httpd.conf 수정
// 소스의 양을 줄이기위해 불필요한 내용 및 주석은 삭제하였음
ServerRoot "c:/Apache24"
Listen 80
// 도메인에서 유입되는 포트가 어떤 포트인지 확인한 후 (기본은 80포트) Listen으로 열어준다.
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
Include conf/mod_jk.conf
// tomcat+apache연동 모듈을 include함
Include conf/extra/httpd-vhosts.conf
// 가상 호스트 설정 파일 include 함
<IfModule unixd_module>
User daemon
Group daemon
</IfModule>
ServerAdmin admin@example.com
ServerName www.example.com:80
// 사용하는 도메인에 대하여 serverName 설정
ServerName www.example1.com:80
// 1개의 웹서버에 여러개 도메인을 연결해주고 싶은경우 추가한뒤 httpd-vhost에서 tomcat과 연동해준다
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error.log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access.log" common
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "c:/Apache24/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
4. httpd-vhost.conf 수정
가상호스트를 설정해주는 파일이다.
해당 설정파일은 apache설치파일/conf/extra 밑에 존재한다.
# TOMCAT 설정
<VirtualHost *:80> // 외부에서 들어오는 아이피 : 포트
ServerName www.example.com
JkMount /* ex1 // apache+tomcat 연동시 사용되는 고유 id 값
DocumentRoot "C:/apache-tomcat-6.0.37_test01/webapps" // tomcat/webapps 경로
<Directory "C:/apache-tomcat-6.0.37_test01/webapps">
</Directory>
</VIrtualHost>
<VirtualHost *:80>
ServerName www.example1.com
JkMount /* ex2
DocumentRoot "C:/apache-tomcat-6.0.37_test02/webapps"
<Directory "C:/apache-tomcat-6.0.37_test02/webapps">
</Directory>
</VirtualHost>
이름 |
설명 |
virtualhost |
들어오는 url:port를 설정해준다 |
ServerName |
도메인명 |
JKMount |
jsp 요청이 들어오면 tomcat_id(예;ex1)이 그 해당 요청을 tomcat에게 보내는 역할을 한다. 요청을 보낼 때는 특정 파일에 대한 값만 제한하여 보낼 수 있으며 예를들어 jsp파일에 대한 url만 요청하고 싶을 경우 /*.jsp같이 변경하여 설정할 수 있다. |
5. workers.properties 설정
workers.properties는 apache내부에서 제공되는 파일이 아니다.
그러므로 만들어줘야 되며 만들어줄 떄는 다음과 같이 만들어주면 된다.
worker.list=ex1,ex2
// httpd-vhost에서 설정해준 id 값을 넣어줌
worker.maintain=30
worker.ex1.type=ajp13
// id에 대한 type 부터 기타 설정을 진행함
worker.ex1.host=localhost
worker.ex1.port=8471
// tomcat server.xml 내에 설정한 ajp port 를 넣어줘야함
worker.ex1.socket_keepalive=1
worker.ex1.connection_pool_size=100
worker.ex1.connect_timeout=3000
worker.ex1.prepost_timeout=1000
worker.ex1.socket_timeout=3
worker.ex1.reply_timeout=1000
worker.ex2.type=ajp13
worker.ex2.host=localhost
worker.ex2.port=8472
worker.ex2.socket_keepalive=1
worker.ex2.connection_pool_size=100
worker.ex2.connect_timeout=3000
worker.ex2.prepost_timeout=1000
worker.ex2.socket_timeout=3
worker.ex2.reply_timeout=1000
이름 |
설명 |
worker.list=tomcat id 값 |
httpd-vhost에서 설정한 id 값을 넣어준다. |
worker.ex1.type=ajp13 |
apache http서버와 tomcat서버가 통신하는 protocol은 AJP13이다. |
worker.ex1.connection_timeout=1000 |
mod_jk와 tomcat instance간 연결이 완료된 후 AJP13프로토콜에서의 cping request에 대한 response timeout 값 (1000 = 1초) |
worker.ex1.propost_timeout=1000 |
mod_jk와 tomcat instance간의 요청이 전달되기 전에 AJP13프로토콜에서의 cping request에 대한 response timeout 값 (1000 = 1초) |
worker.ex1.socket_timeout=3 |
mod_jk와 tomcat instance간의 응답대기 시간이 3초라면 timeout |
worker.ex1.reply_timeout=1000 |
mod_jk와 tomcat instance간의 요청과 응답시간에 대해서 timeout을 설정 |
worker.ex1.port=8471 |
tomcat 내에서 설정한 AJP 프로토콜 |
그럼!!!!!!!!!!!!!!!!!!!!
'컴퓨터 공부 > 기타 ' 카테고리의 다른 글
JSONP의 기능 및 예제 (1) | 2015.04.17 |
---|---|
[네트워크] netstat 에 대하여 알아보자 (0) | 2013.02.07 |
[기타] font-face사용법 및 eot,woff폰트파일 변경방법 (2) | 2013.01.31 |
[기타] FTP과 NCFTP사용법 (0) | 2013.01.09 |
[기타] FTP데몬과 NCFTP 설치법의 차이점 (0) | 2013.01.09 |