Apache-Tomcat proxy ajp

Programming/Apache 2012.02.08 01:56

1.버전에 맞는 아파치 소스 다운로드

wget http://apache.mirror.cdnetworks.com/httpd/httpd-2.0.63.tar.gz

 

2.압축 해제 후 module/proxy 디렉토리로 이동

tar xvzf httpd-2.0.63.tar.gz

/usr/local/src/httpd-2.0.63/modules/proxy


3.컴파일

/usr/local/apache/bin/apxs -i -a -c mod_proxy.c proxy_util.c

/usr/local/apache/bin/apxs -i -a -c mod_proxy_http.c proxy_util.c

/usr/local/apache/bin/apxs -i -a -c mod_proxy_connect.c proxy_util.c

/usr/local/apache/bin/apxs -i -a -c mod_proxy_ajp.c proxy_util.c ajp_header.c ajp_utils.c ajp_link.c ajp_msg.c


4. 결과

mod_proxy_ajp.so

mod_proxy_connect.so

mod_proxy_http.so

mod_proxy.so


5.httpd.conf 확인 & 수정

(1) 다음처럼 LoadModule에 추가되어있음을 확인

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_connect_module modules/proxy_connect.so

LoadModule proxy_http_module modules/proxy_http.so

LoadModule proxy_ftp_module modules/mod_proxy_ajp.so


(2) 제일 하단에 다음처럼 추가

ProxyRequests On

ProxyVia On

<Proxy *>

Order deny,allow

Allow from all

</Proxy>


(3) vhost conf 파일이나 <Location> 안에 추가.

ProxyPass /pass ajp://localhost:8009/pass

ProxyPassReverse /pass ajp://localhost:8009/pass


(3-1) 같지만 다른 방법으로는 Rewrite를 사용하는 방법이 있음. ( http://httpd.apache.org/docs/current/mod/mod_rewrite.html )

RewriteEngine On

RewriteRule /pass(.*) ajp://localhost:8009/pass$1 [P]


6. 마지막으로 Tomcat server.xml 파일을 체크해줄것.

<Connector port="8009"

enableLookups="false" secure="true" URIEncoding="UTF-8"

tomcatAuthentication="false"

protocol="AJP/1.3" />

흐아~~~~ 새벽 2시다.-_-+ 

여담.
필요한 모듈들을 모두 안넣어주면 아래와 같은 에러가 발생한다.-_-;
제길 단순히 모듈이 없어서 나는 에러였다. 제길... 제길... 

[Wed Feb 08 01:03:15 2012] [warn] proxy: No protocol handler was valid for the URL /pass/test.html. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License


티스토리 툴바