티스토리 뷰
1. http://tomcat.apache.org/download-connectors.cgi 에 접속
2. http://apache.tt.co.kr/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz 링크주소복사
3. wget http://apache.tt.co.kr/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz 설치
4. tar xvfz를 이용하여 압축품
5. 압축푼 디렉토리 tomcat-connectors-1.2.46-src에 들어감
6. tomcat-connectors-1.2.46-src 안에 native로 들어감
7. ./configure --with-apxs=/usr/local/douzone/apache/bin/apxs 실행
8. make 그리고 make install 실행
9. vi /usr/local/douzone/apache/conf/http.conf를 연다
10. LoadModule jk_module modules/mod_jk.so 이 내용을 http.conf 안의 모듈 리스트의 맨밑에 넣는다
11.
# mod_jk</IfModule><IfModule mod_jk.c> JkWorkersFile conf/workers_jk.properties JkShmFile run/mod_jk.shm JkLogFile logs/mod_jk.log JkLogLevel info JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " JkMountFile conf/uriworkermap.properties
위 내용을 http.conf 맨밑에 넣는다 위내용은 worker, log 설정을 해줌
worker : modJK의 통신하는애
Shm : share memory
JkShmFile run/mod_jk.shm 이부분을 보면 run 디렉토리가필요
JkMountFile conf/uriworkermap.properties : 이 url로 왔을때 worker가 작동해라 라는 설정 ( RequestHeader와 body를 전부다 넘겨준다)
12. /usr/local/douzone/apahce 에 run 디렉토리 생성
13. /usr/local/douzone/apache/conf에 workers_jk.properties파일을 만든다
vi workers_jk.properties
14.
worker.list=worker1, worker2 # server1 worker.worker1.port=8009 worker.worker1.host=톰캣서버가있는 ip worker.worker1.type=ajp13 worker.worker1.lbfactor=1 # server 2 worker.worker2.port=8009 worker.worker2.host=톰캣서버가있는 ip worker.worker2.type=ajp13 worker.worker2.lbfactor=1
위 내용을 복사하여 넣는다
lbfactor : 로드밸런싱 하는부분 1 1 이면 한번씩 번갈아가면서 접속 1 2 면 위에 한번 밑에 2번
host부분에 localhost로 하는것은 아파치와 톰캣이 같이있을때
15. /usr/local/douzone/apache/conf에 uriworkermap.properties 파일을 만든다
vi uriworkermap.properties
16.
## Mapping the URI /helloweb under worker1 /helloweb/*=worker1 ## Mapping the URI /mysite3 under worker2 /mysite3/*=worker2 #/mysite3/*=worker1 # /service2 요청으로 들어온 것은 worker2 로 mount # /service2/*=worker2 # assets 아래의 static 자원처리는 apache가 처리 # !/helloweb/assets/*=worker1 #asset은 헬로웹 밑에있으니 이렇게설정 # !/mysite3/assets/*=worker2
위 내용을 붙여넣음
/helloweb/*=worker1 // helloweb으로 들어오는애는 worker1이 처리
아파치와 톰캣을 분리하는 이유
1. 로드밸런싱
2. 보안
17. 톰캣이 설치되어있는 서버에 /usr/local/douzone/douzone/conf의 server.xml
<!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
위 내용으로 수정
Path through : 아파치가 안건드리고 리퀘스트를 그대로 전달( 내용이 그대로전달) 커넥터가 다름 AJP커넥터가 아닌 http커넥터로 직접 톰캣에 접근할수있기 때문에 encoding 설정을 해주지않으면 한글이 깨질수있기때문에 엔코딩설정