You cannot see this page without javascript.

Proxy AJP

APM 조회 수 417 추천 수 0 2014.05.27 08:21:21

ProxyAJP에 대해 잘 모르신다면 링크의 글을 보시거나 좀더 검색해 보시고 보시면 좋을 것같습니다.
정말 간단하다 못해 너무 단순하게 강력한 효과를 얻을 수 있는 방법이라고 생각합니다.


로드 모듈 설정

cache

cache-disk

cgi

deflate

expires

file-cache

headers

mem-cache

mime-magic

proxy

proxy-ajp

rewrite

speling

ssl

usertrack


아파치가 설치된 디렉토리의 conf/httpd.conf 파일을 열어 다음의 두가지가 정상적으로 존재하는지 확인합니다.
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule rewrite_module modules/mod_rewrite.so

다음과 같은 설정 파일을 proxy_ajp.conf 파일로 만들어 Apache의 설정 파일에 Include되도록 합시다.

ProxyRequests Off
ProxyVia Block
ProxyMaxForwards 100
ProxyPreserveHost On

ProxyPass /manager/ ajp://localhost:8009/manager/
ProxyPass /servlet/ ajp://localhost:8009/servlet/
ProxyPass /flex/ ajp://localhost:8009/flex/
ProxyPassMatch ^/.*.(jsp|do)$ ajp://localhost:8009/

# 보안을 위해 WEB-INF 접근 불가설정
<LocationMatch "/WEB-INF">
    deny from all
</LocationMatch>

# 보안을 위해 META-INF 접근 불가설정
<LocationMatch "/META-INF">
    deny from all
</LocationMatch>


ProxyPass를 사용하여 특정 디렉토리를 톰캣에서 처리하게 할 수 있습니다.
ProxyPassMatch를 이용하여 특정 확장자를 가진 파일을 톰캣에서 처리하도록 할 수 있습니다. 정규식을 잘 쓰면 되겠네요.
이제는 더이상 worker.properties니 하는 파일이 필요없습니다. 위와 같은 방법으로 간단하게 처리 가능합니다.
WEB-INF나 META-INF 디렉토리로의 접근 보안 문제는 위와같이 해결할 수 있습니다.
위와 같은 설정으로 웹호스팅 환경의 멀티 가상호스트상황에서도 일일이 연동 설정을 할 필요없어졌습니다.


톰캣이 설치된 디렉토리의 conf/server.xml의 설정을 변경합니다. Connector설정을 확인합니다.
<Connector port="8009" protocol="AJP/1.3" maxThreads="150" minSpareThreads="25"
    maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100"
    debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />


아파치 가상호스트에 지정한것과 동일한 호스트를 설정합니다.
<Host name="theeye.pe.kr" debug="0" appBase="/var/www/html" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/var/www/html" debug="0" reloadable="false" crossContext="true" />
</Host>

-------------------------------------------------------------------------------------------------------


가상호스팅 설정


그리고 마지막쯤에 있는 가상호스팅 관련 설정을 인클루드 하도록 설정합니다.
Include conf/extra/httpd-vhosts.conf

아파치 설치 디렉토리의 conf/extra/httpd-vhost.conf 파일을 열어 가상호스트를 추가합니다.
[code]<VirtualHost *:80>
    ServerAdmin your@emailhere
    DocumentRoot /var/www/html
    ServerName theeye.pe.kr
    ErrorLog logs/theeye.pe.kr-error_log
    CustomLog logs/theeye.pe.kr-access_log common


    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} .(htm|html|xhtml|js|css|jpg|gif|png|swf)$
    RewriteRule (.*) - [L]
    RewriteRule (.*) ajp://localhost:8009$1 [P]
</VirtualHost>[/code]
위와같은 rewrite를 통한 설정은 htm, html, xhtml, js, css, jpg, gif, png, swf 확장자를 가진 요청은 아파치가 처리하도록 하고 나머지는 톰캣이 처리하도록 합니다. 원하시는 확장자를 마음껏 추가하셔도 됩니다.

자, 이제 아파치와 톰캣의 설정이 모두 끝났습니다. 위와 같이 사용하시면 아파치에서 처리할 파일과 톰캣이 처리할 파일들을 따로 분리할 필요도 없으며 확장자에 따라 정확히 아파치와 톰캣이 분산 처리를 하게 됩니다.

정적인 파일들을 톰캣이 처리할 필요는 없으니깐요^^

추가로 특정 호스트에게만 오픈하는 관리자 페이지거나 개발서버일 경우 다음과 같이 접근 가능 아이피를 지정할 수 있습니다.

[code]<VirtualHost *:80>
    ServerAdmin your@emailhere
    DocumentRoot /var/www/html
    ServerName theeye.pe.kr
    ErrorLog logs/theeye.pe.kr-error_log
    CustomLog logs/theeye.pe.kr-access_log common


    RewriteEngine On
    RewriteCond !%{REMOTE_ADDR} ^127.0.0.1$
    RewriteRule ^.*$ - [F]
    RewriteCond %{REQUEST_FILENAME} .(htm|html|xhtml|js|css|jpg|gif|png|swf)$
    RewriteRule (.*) - [L]
    RewriteRule (.*) ajp://localhost:8009$1 [P]
</VirtualHost>[/code]

127.0.0.1 아이피를 가진 호스트가 아니라면 아파치에서 바로 에러페이지를 출력하게 됩니다.

위의 방법을 사용할 경우 보안 문제가 있습니다.

엮인글 :
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
109 Linux 리눅스 게이밍 가이드 1부 : 게임을 위한 환경 설정 [10] LynX 2014-12-24 1027
108 Server 전산업무 리스트 LynX 2016-05-20 1028
107 Xpress Engine XE 애드온(addon)개발하기 LynX 2014-07-11 1044
106 Linux MySQL 5.1.73 바이너리 설치 LynX 2014-07-02 1049
105 CentOS APM 소스 설치 file [15] LynX 2015-05-29 1053
104 APM APM 기본적인 점검 LynX 2013-12-27 1064
103 CentOS7 ▒ Doly의 CentOS7 강좌10 3. CentOS시작, 종료, 둘러보기 -2 file [17] LynX 2014-10-23 1071
102 Linux LFS/Preface - 서문 [9] LynX 2014-08-06 1072
101 아레한글 사용시 출력물에 음영이 나타나는 현상. file [11] LynX 2012-03-29 1077
100 Linux 리눅스 부팅시 초기화 [21] LynX 2015-01-05 1080
99 Linux mint APM install LynX 2015-12-11 1105
98 CentOS init mode change LynX 2019-05-30 1113
97 E-Mail hmailserver 설치 LynX 2014-05-29 1121
96 CentOS wow 6.x 구축 [6] LynX 2015-11-30 1133
95 LinuxMint LinuxMint MariaDB source 설치 [12] LynX 2014-12-19 1135
94 IIS+MSSQL+XE [9] LynX 2012-12-12 1142
93 CentOS wow 3.3.5a 구축 [1] LynX 2015-11-30 1173
92 Linux 리눅스 명령어 모음 LynX 2013-09-02 1177
91 CentOS php에 ssh2 설치하여 sftp 사용가능 file LynX 2016-03-10 1196
90 IIS에 FastCgi모듈 활성화 시키기 file [12] LynX 2012-11-21 1228

XE Login