http://jangnan.wordpress.com로 블로그 이전합니다.
구글 블로그가 가독성이 너무 떨어지네요.
새로나온 테마 적용하면 카테고리가 부실하고 워드프레스가 그나마 나은거 같아서 옮깁니다.
Jangnan's Life
2012년 2월 2일 목요일
2012년 2월 3일 it 기술 동향
java
spring mvc restful
http://nurkiewicz.blogspot.com/2012/02/automatically-generating-wadl-in-spring.html
Neo4j 와 직관적인 그래프
http://maxdemarzi.com/2012/02/02/graph-visualization-and-neo4j-part-two/
각종 자바 서버와 애플리케이션의 메모리 사용율 비교
http://www.jvmhost.com/articles/memory-usage-comparison-of-java-application-servers-and-applications#.Tykao1hFKhc.hackernews
팩토리 메서드 패턴 적용하기
http://www.java-only.com/LoadTutorial.javaonly?id=20
복잡한 이클립스 플러그인 없이 톰캣 디버깅하기
http://andreas.haufler.info/2012/01/launching-and-debugging-tomcat-from.html
glassfish 다중 도메인에서 클러스터링 하기
http://alexandru-ersenie.com/2012/01/30/glassfish-vertical-clustering-with-multiple-domains/
하이버네이트 캐시 레벨 튜토리얼
http://www.javacodegeeks.com/2012/02/hibernate-cache-levels-tutorial.html
gwt를 이용한 mvp 패턴 만들기
http://joergviola.blogspot.com/2011/07/gwt-mvp-made-simple.html
android
안드로이드 로그캣 로그를 실시간으로 푸쉬해줌
https://github.com/koush/logpush
Cloud computing
bigdata 가이드
https://plus.google.com/114723964985237592593/posts/a1p5LiURPW8
모바일 클라우드 보안
http://www.ibm.com/developerworks/kr/cloud/library/cl-mobilecloudsecurity/index.html
dart
심플한 게임만들기
http://phylotic.blogspot.com/2012/02/reactive-dart-series-part-3-of-n.html
마술상자 만들기
http://dzenanr.github.com/2012/02/02/from-s02-to-s03.html
javascript
backbone.js 예제
http://www.javageneration.com/?p=839
예제를 만들어보며 배우는 backbone.js
http://coenraets.org/blog/2012/01/backbone-js-lessons-learned-and-improved-sample-app
json 소개
http://www.w3resource.com/JSON/introduction.php
jquery
jpg디코더 js
https://github.com/notmasteryet/jpgjs
사진 크기를 늘렸다가 줄엿다가 할수있는 플러그인
http://www.dimin.net/software/panojs/
방향키로 스크롤링을 하는데 슬라이드 넘기는 거 같음
http://johnpolacek.github.com/scrolldeck.js/
프롬프트 메뉴를 구현하기 좋음
http://natrixnatrix89.github.com/promptu-menu/
사이드 패널
http://codebomber.com/jquery/slidepanel/
홈페이지 전면의 플래쉬급 배너제작가능한 애니메이션 플러그인
http://visitmix.com/labs/glimmer/
트위터 위젯
http://tweet.seaofclouds.com/
페이스북 타임라인 모방하기(좀틀림)
http://demos.9lessons.info/timeline/index.html
linux
조냉 많이 쓰는 리눅스 명령어 50개
http://www.thegeekstuff.com/2010/11/50-linux-commands/
etc.
Restful 한 개발이란 무엇인가?
http://stackoverflow.com/questions/671118/what-exactly-is-restful-programming
이메일 서버 설정 시나리오들
http://cloudtech.biz/email-server-configuration-scenarios/
나만의 로고 만드는법
http://www.netmagazine.com/tutorials/create-custom-lettered-logo-illustrator
spring mvc restful
http://nurkiewicz.blogspot.com/2012/02/automatically-generating-wadl-in-spring.html
Neo4j 와 직관적인 그래프
http://maxdemarzi.com/2012/02/02/graph-visualization-and-neo4j-part-two/
각종 자바 서버와 애플리케이션의 메모리 사용율 비교
http://www.jvmhost.com/articles/memory-usage-comparison-of-java-application-servers-and-applications#.Tykao1hFKhc.hackernews
팩토리 메서드 패턴 적용하기
http://www.java-only.com/LoadTutorial.javaonly?id=20
복잡한 이클립스 플러그인 없이 톰캣 디버깅하기
http://andreas.haufler.info/2012/01/launching-and-debugging-tomcat-from.html
glassfish 다중 도메인에서 클러스터링 하기
http://alexandru-ersenie.com/2012/01/30/glassfish-vertical-clustering-with-multiple-domains/
하이버네이트 캐시 레벨 튜토리얼
http://www.javacodegeeks.com/2012/02/hibernate-cache-levels-tutorial.html
gwt를 이용한 mvp 패턴 만들기
http://joergviola.blogspot.com/2011/07/gwt-mvp-made-simple.html
android
안드로이드 로그캣 로그를 실시간으로 푸쉬해줌
https://github.com/koush/logpush
Cloud computing
bigdata 가이드
https://plus.google.com/114723964985237592593/posts/a1p5LiURPW8
모바일 클라우드 보안
http://www.ibm.com/developerworks/kr/cloud/library/cl-mobilecloudsecurity/index.html
dart
심플한 게임만들기
http://phylotic.blogspot.com/2012/02/reactive-dart-series-part-3-of-n.html
마술상자 만들기
http://dzenanr.github.com/2012/02/02/from-s02-to-s03.html
javascript
backbone.js 예제
http://www.javageneration.com/?p=839
예제를 만들어보며 배우는 backbone.js
http://coenraets.org/blog/2012/01/backbone-js-lessons-learned-and-improved-sample-app
json 소개
http://www.w3resource.com/JSON/introduction.php
jquery
jpg디코더 js
https://github.com/notmasteryet/jpgjs
사진 크기를 늘렸다가 줄엿다가 할수있는 플러그인
http://www.dimin.net/software/panojs/
방향키로 스크롤링을 하는데 슬라이드 넘기는 거 같음
http://johnpolacek.github.com/scrolldeck.js/
프롬프트 메뉴를 구현하기 좋음
http://natrixnatrix89.github.com/promptu-menu/
사이드 패널
http://codebomber.com/jquery/slidepanel/
홈페이지 전면의 플래쉬급 배너제작가능한 애니메이션 플러그인
http://visitmix.com/labs/glimmer/
트위터 위젯
http://tweet.seaofclouds.com/
페이스북 타임라인 모방하기(좀틀림)
http://demos.9lessons.info/timeline/index.html
linux
조냉 많이 쓰는 리눅스 명령어 50개
http://www.thegeekstuff.com/2010/11/50-linux-commands/
etc.
Restful 한 개발이란 무엇인가?
http://stackoverflow.com/questions/671118/what-exactly-is-restful-programming
이메일 서버 설정 시나리오들
http://cloudtech.biz/email-server-configuration-scenarios/
나만의 로고 만드는법
http://www.netmagazine.com/tutorials/create-custom-lettered-logo-illustrator
2012년 2월 1일 수요일
2012년 2월 2일 it 기술 동향
JAVA
vaadin과 jsf중에 어느것을 선택해야할까
http://www.hildeberto.com/2012/01/choosing-between-vaadin-and-jsf.html
http://www.softwaretestingmagazine.com/videos/cucumber-with-jvm-improvements/
varnish 를 이용한 속도개선
http://blog.mgm-tp.com/2012/01/varnish-web-cache/
oracle의 java 앞으로 2년간의 로드맵
http://www.infoworld.com/slideshow/28552/java-roadmap-oracles-two-year-plan-185238
jax-rs를 이용해서 만든 rest api를 이용해 spring android를 이용한 앱만들기
http://www.ibm.com/developerworks/kr/library/x-springandroid/index.html
java ee6 의 샘플들 구성
http://blogs.oracle.com/arungupta/entry/java_ee_6_samples_in
http://blog.eisele.net/2012/01/sneak-peak-at-java-ee-7-multitenant.html
웹소켓 을 통한 브라우저에게 CDI이벤트 보내기
http://wesleyhales.com/blog/2012/01/20/Sending-CDI-events-to-the-browser-with-websockets/
java 7 에서의 파일 복사와 이동
http://codingjunkie.net/java-7-copy-move/
python
파워풀한 테스트를 위한 mock 오브젝트의 주입
http://blueprintforge.com/blog/2012/01/08/python-injecting-mock-objects-for-powerful-testing/
android
rapmobile
http://rapmobile.eclipsesource.com/
html5
웹 메시징 소개
http://dev.opera.com/articles/view/window-postmessage-messagechannel/
Javascript
이미지를 쉽게 drawing하게 해주는 js
http://thinkpixellab.com/pxloader/#sample1
jsdev 메뉴얼
https://github.com/markandey/JSDev/wiki/User-Manual
Jquery
jquery 30일 완성 이메일로 받는 교육
http://learnjquery.tutsplus.com/
마우스 커서를 찍으면 물방울 번짐 이펙트 일어남
http://nejimaki-act.com/lab/pointer/
글씨가 상하로 페인드인아웃됨
http://medienfreunde.com/lab/innerfade/
Dart
Nio 라이브러리 추가
http://news.dartlang.org/2012/02/dart-io-libraries-for-files-and-network.html
dart에서 web audio api 활용하기
http://news.dartlang.org/2012/02/web-audio-api-and-dart.html
json 으로 이름만 넣으면 dom구조로 마크업으로 만들어줌
https://github.com/insin/DOMBuilder
Node.js
https://github.com/OptimalBits/navcodec
웹개발에 용의한 심플한 middleware
http://matthewmueller.github.com/thimble/
start-stop-daemon
https://github.com/jiem/start-stop-daemon
단순하게 node.js로 서버 구현하고 클라이언트 만들어서 이벤트 푸시
https://github.com/einaros/sse.js
tools
리눅에서 사용가능한 compare synchronize 툴
http://www.webupd8.org/2012/02/compare-and-synchronize-folders-with.html
etc.
Google Maps API plus Fusion Tables 를 이용해서 만든 엘더스크롤 스카이림 지도
http://www.tamrielma.ps/skyrim/
21세기 코드리뷰
http://dublintech.blogspot.com/2012/01/code-reviews-in-21st-century.html
vaadin과 jsf중에 어느것을 선택해야할까
http://www.hildeberto.com/2012/01/choosing-between-vaadin-and-jsf.html
http://www.softwaretestingmagazine.com/videos/cucumber-with-jvm-improvements/
varnish 를 이용한 속도개선
http://blog.mgm-tp.com/2012/01/varnish-web-cache/
oracle의 java 앞으로 2년간의 로드맵
http://www.infoworld.com/slideshow/28552/java-roadmap-oracles-two-year-plan-185238
jax-rs를 이용해서 만든 rest api를 이용해 spring android를 이용한 앱만들기
http://www.ibm.com/developerworks/kr/library/x-springandroid/index.html
java ee6 의 샘플들 구성
http://blogs.oracle.com/arungupta/entry/java_ee_6_samples_in
http://blog.eisele.net/2012/01/sneak-peak-at-java-ee-7-multitenant.html
웹소켓 을 통한 브라우저에게 CDI이벤트 보내기
http://wesleyhales.com/blog/2012/01/20/Sending-CDI-events-to-the-browser-with-websockets/
java 7 에서의 파일 복사와 이동
http://codingjunkie.net/java-7-copy-move/
python
파워풀한 테스트를 위한 mock 오브젝트의 주입
http://blueprintforge.com/blog/2012/01/08/python-injecting-mock-objects-for-powerful-testing/
android
rapmobile
http://rapmobile.eclipsesource.com/
html5
웹 메시징 소개
http://dev.opera.com/articles/view/window-postmessage-messagechannel/
Javascript
이미지를 쉽게 drawing하게 해주는 js
http://thinkpixellab.com/pxloader/#sample1
jsdev 메뉴얼
https://github.com/markandey/JSDev/wiki/User-Manual
Jquery
jquery 30일 완성 이메일로 받는 교육
http://learnjquery.tutsplus.com/
마우스 커서를 찍으면 물방울 번짐 이펙트 일어남
http://nejimaki-act.com/lab/pointer/
글씨가 상하로 페인드인아웃됨
http://medienfreunde.com/lab/innerfade/
Dart
Nio 라이브러리 추가
http://news.dartlang.org/2012/02/dart-io-libraries-for-files-and-network.html
dart에서 web audio api 활용하기
http://news.dartlang.org/2012/02/web-audio-api-and-dart.html
json 으로 이름만 넣으면 dom구조로 마크업으로 만들어줌
https://github.com/insin/DOMBuilder
Node.js
https://github.com/OptimalBits/navcodec
웹개발에 용의한 심플한 middleware
http://matthewmueller.github.com/thimble/
start-stop-daemon
https://github.com/jiem/start-stop-daemon
단순하게 node.js로 서버 구현하고 클라이언트 만들어서 이벤트 푸시
https://github.com/einaros/sse.js
tools
리눅에서 사용가능한 compare synchronize 툴
http://www.webupd8.org/2012/02/compare-and-synchronize-folders-with.html
etc.
Google Maps API plus Fusion Tables 를 이용해서 만든 엘더스크롤 스카이림 지도
http://www.tamrielma.ps/skyrim/
21세기 코드리뷰
http://dublintech.blogspot.com/2012/01/code-reviews-in-21st-century.html
2012년 1월 31일 화요일
2012년 2월 1일 it 기술 동향
java
spring 3,3.1에서의 비지니스 컴포넌트 아키텍쳐
http://blog.codecentric.de/en/2012/01/a-business-component-architecture-with-spring-3-03-1-part-1-structure/
java8 부터 unsinged integer 지원
http://lukaseder.wordpress.com/2012/01/21/java-8-will-have-some-support-for-unsigned-integers/
spring 에서 junit을 이용한 scope bean테스트하는거랑 jee bean에 aquillan이용해서 테스트
http://niklasschlimm.blogspot.com/2011/07/integration-testing-scoped-beans-in-cdi.html
jboss의 html5에 대한 전략
https://community.jboss.org/wiki/AeroGearServerSideResources
http://planet.jboss.org/post/the_aerogear_mobile_html5_project_is_alive
python
심플한 소켓 클라이언트 쓰레드 코드
http://eli.thegreenplace.net/2011/05/18/code-sample-socket-client-thread-in-python/
html5
web storage동영상
http://debugmode.net/2012/01/28/video-on-web-storage-in-html5/
javascript
stellar.js
http://markdalgleish.com/projects/stellar.js/
canvas를 쉽게 쓸수있게 해주는 EaselJS
https://github.com/gskinner/EaselJS
psd파일을 파싱해주는 psd.js
http://meltingice.github.com/psd.js/
dart 나선 꼬기
http://dzenanr.github.com/
http://blog.involver.com/2012/01/26/testing-backbone-js-best-practices-2/
jquery
흥미로운 플러그인 40개
http://www.admixweb.com/2012/01/30/40-handy-jquery-plugins-for-serious-web-developers/
비디오 플레이어 플러그인
http://www.jqueryrain.com/2012/01/40-best-jquery-players-tutorials-both-audio-player-and-video-player/
쓸만한 플러그인 3종세트
http://dailyjs.com/2012/01/31/jquery-roundup/
jquery 보일러플레이트
http://jqueryboilerplate.com/
cloud
구글앱엔진 1.6.2 업데이트
http://googleappengine.blogspot.com/2012/01/app-engine-162-released.html
http://code.google.com/intl/ko-KR/appengine/docs/python/dataprocessing/overview.html
Prospective Search
http://code.google.com/appengine/docs/python/prospectivesearch/overview.html
big query
https://developers.google.com/bigquery/
etc.
웹브라우저 얼랭 콘솔 에뮬레이터
http://svahne.github.com/browserl/
spring 3,3.1에서의 비지니스 컴포넌트 아키텍쳐
http://blog.codecentric.de/en/2012/01/a-business-component-architecture-with-spring-3-03-1-part-1-structure/
java8 부터 unsinged integer 지원
http://lukaseder.wordpress.com/2012/01/21/java-8-will-have-some-support-for-unsigned-integers/
spring 에서 junit을 이용한 scope bean테스트하는거랑 jee bean에 aquillan이용해서 테스트
http://niklasschlimm.blogspot.com/2011/07/integration-testing-scoped-beans-in-cdi.html
jboss의 html5에 대한 전략
https://community.jboss.org/wiki/AeroGearServerSideResources
http://planet.jboss.org/post/the_aerogear_mobile_html5_project_is_alive
python
심플한 소켓 클라이언트 쓰레드 코드
http://eli.thegreenplace.net/2011/05/18/code-sample-socket-client-thread-in-python/
html5
web storage동영상
http://debugmode.net/2012/01/28/video-on-web-storage-in-html5/
javascript
stellar.js
http://markdalgleish.com/projects/stellar.js/
canvas를 쉽게 쓸수있게 해주는 EaselJS
https://github.com/gskinner/EaselJS
psd파일을 파싱해주는 psd.js
http://meltingice.github.com/psd.js/
dart 나선 꼬기
http://dzenanr.github.com/
http://blog.involver.com/2012/01/26/testing-backbone-js-best-practices-2/
jquery
흥미로운 플러그인 40개
http://www.admixweb.com/2012/01/30/40-handy-jquery-plugins-for-serious-web-developers/
비디오 플레이어 플러그인
http://www.jqueryrain.com/2012/01/40-best-jquery-players-tutorials-both-audio-player-and-video-player/
쓸만한 플러그인 3종세트
http://dailyjs.com/2012/01/31/jquery-roundup/
jquery 보일러플레이트
http://jqueryboilerplate.com/
cloud
구글앱엔진 1.6.2 업데이트
http://googleappengine.blogspot.com/2012/01/app-engine-162-released.html
map reduce
http://code.google.com/intl/ko-KR/appengine/docs/python/dataprocessing/overview.html
Prospective Search
http://code.google.com/appengine/docs/python/prospectivesearch/overview.html
big query
https://developers.google.com/bigquery/
etc.
웹브라우저 얼랭 콘솔 에뮬레이터
http://svahne.github.com/browserl/
2012년 1월 30일 월요일
2012년 1월 31일 it 기술 동향
Java
java에서의 foreach 루프의 이해
http://javabynataraj.blogspot.com/2012/01/understanding-foreach-loop-in-java.html
DI는 왜 써야되는가?
http://cspray.github.com/2012/01/24/why-you-should-use-DI.html
http://googledata.org/google-testing/clean-code-talks-dependency-injection/
클라우드 환경 속에서의 자바 어플리케이션의 보안
http://www.ibm.com/developerworks/java/library/j-javadev2-23/index.html?ca=drs-
osgi 모듈 소개
http://www.javacodegeeks.com/2012/01/introduction-to-osgi-modular-java.html
자바 웹호스팅에 선택에 따른 플로우 차트
http://www.streamhead.com/java-web-hosting-options-flowchart/
Python
csv모듈
http://slott-softwarearchitect.blogspot.com/2012/01/python-32-csv-module-very-very-nice.html
Javascript
dart와 기존과의 비교로 배워보는 문법
http://synonym.dartlang.org/
Jquery
횡스크롤 배너
http://www.gcmingati.net/wordpress/wp-content/lab/jquery/newsticker/jq-liscroll/scrollanimate.html
이미지를 잘라주는 js 블로그의 댓글 다는 것 방식도 재밌다.
http://www.useragentman.com/blog/2011/10/29/clipping-jpeg-images-into-non-rectangular-polygons-using-polyclip-js/
CSS3
네비게이터를 클릭하면 별도의 창같이 화면이 내려온다.
http://tympanus.net/codrops/2012/01/30/page-transitions-with-css3/
뷸렛 드롭다운 네비게이터 메뉴
http://azadcreative.com/2012/01/bulletproof-css3-dropdown-navigation-menu/
Node.js
node.js redis를 이용한 트위터 앱 만들기
https://github.com/mashery/iodocs
분산 처리 기반의 로드 밸런서
https://github.com/LearnBoost/up
tools.
클라우드 베이스 테스팅 툴들
http://www.toolsjournal.com/testing-lists/item/404-10-cloud-based-testing-tools
파폭 10,11 개발자 툴들
http://www.webdesignerdepot.com/2012/01/new-developer-tools-in-firefox-10-and-11/
chromium 코맨드 라인 명령어
http://peter.sh/experiments/chromium-command-line-switches/
etc.
jboss as에서 html5 개발하기
http://vimeo.com/33538130
foundry의 멀티 다 언어 멀티 프레임워크 지원
http://blog.cloudfoundry.com/post/13481010615/multi-language-multi-framework-what-about-multi-cloud
ssd에 db를 사용하면 빠를까?
http://www.cubrid.org/blog/dev-platform/will-the-use-of-ssd-increase-the-speed-of-dbms/
모질라 그룹의 새로운 프로젝트 팬케이크
http://mozillalabs.com/blog/2012/01/pancake-a-new-project-from-mozilla-labs/
java에서의 foreach 루프의 이해
http://javabynataraj.blogspot.com/2012/01/understanding-foreach-loop-in-java.html
DI는 왜 써야되는가?
http://cspray.github.com/2012/01/24/why-you-should-use-DI.html
http://googledata.org/google-testing/clean-code-talks-dependency-injection/
클라우드 환경 속에서의 자바 어플리케이션의 보안
http://www.ibm.com/developerworks/java/library/j-javadev2-23/index.html?ca=drs-
osgi 모듈 소개
http://www.javacodegeeks.com/2012/01/introduction-to-osgi-modular-java.html
자바 웹호스팅에 선택에 따른 플로우 차트
http://www.streamhead.com/java-web-hosting-options-flowchart/
Python
csv모듈
http://slott-softwarearchitect.blogspot.com/2012/01/python-32-csv-module-very-very-nice.html
Javascript
dart와 기존과의 비교로 배워보는 문법
http://synonym.dartlang.org/
Jquery
횡스크롤 배너
http://www.gcmingati.net/wordpress/wp-content/lab/jquery/newsticker/jq-liscroll/scrollanimate.html
이미지를 잘라주는 js 블로그의 댓글 다는 것 방식도 재밌다.
http://www.useragentman.com/blog/2011/10/29/clipping-jpeg-images-into-non-rectangular-polygons-using-polyclip-js/
CSS3
네비게이터를 클릭하면 별도의 창같이 화면이 내려온다.
http://tympanus.net/codrops/2012/01/30/page-transitions-with-css3/
뷸렛 드롭다운 네비게이터 메뉴
http://azadcreative.com/2012/01/bulletproof-css3-dropdown-navigation-menu/
Node.js
node.js redis를 이용한 트위터 앱 만들기
https://github.com/mashery/iodocs
분산 처리 기반의 로드 밸런서
https://github.com/LearnBoost/up
tools.
클라우드 베이스 테스팅 툴들
http://www.toolsjournal.com/testing-lists/item/404-10-cloud-based-testing-tools
파폭 10,11 개발자 툴들
http://www.webdesignerdepot.com/2012/01/new-developer-tools-in-firefox-10-and-11/
chromium 코맨드 라인 명령어
http://peter.sh/experiments/chromium-command-line-switches/
etc.
jboss as에서 html5 개발하기
http://vimeo.com/33538130
foundry의 멀티 다 언어 멀티 프레임워크 지원
http://blog.cloudfoundry.com/post/13481010615/multi-language-multi-framework-what-about-multi-cloud
ssd에 db를 사용하면 빠를까?
http://www.cubrid.org/blog/dev-platform/will-the-use-of-ssd-increase-the-speed-of-dbms/
모질라 그룹의 새로운 프로젝트 팬케이크
http://mozillalabs.com/blog/2012/01/pancake-a-new-project-from-mozilla-labs/
2012년 1월 29일 일요일
Apache 와 Tomcat Load Balancing
mod_jk tomcat Connector :
mod_jk는 tomcat servlet container와 Apache같은 AJP프로토콜을 사용하는 웹서버를 연결해주는 connector 입니다.
웹서버는 client의 request로부터의 response를 관리합니다.
request 가 올때 웹서버는 다음과 같은 행동을 하게합니다.
- sevlet containner connector library를 로드하고 초기화합니다.
- connector에서 인증된 url 포함한 어떤 request를 sevlet에게 주게됩니다.
이렇게 Connector는 웹서버와 container의 중간 매개체 역활을 합니다.
아래의 준비물을 다운받습니다.
1. apache web server 2.2.21(http://httpd.apache.org/download.cgi.)
2. tomcat 6.0.20(http://tomcat.apache.org/download-60.cgi.)
일단 톰캣을 인스톨합니다.
1. 압축을 풀고 임의의 위치(디렉토리)에 위치시키도록 합니다.
2. 일단 설치후 {tomcat_root}/bin 에서 ./startup.sh를 실행시켜서 tomcat을 구동시킵니다.
3. 웹브라우저를 열어서 http:localhost:8080 에 접속합니다.
4. 3번 bin으로 돌아가서 ./shutdown.sh로 tomcat을 끕니다.
로드 밸런싱을 할 예정이므로 두개의 서버를 띄워야합니다.
1. 첫번째 받은 tomcat을 디렉토리이름만 다르게 압축을 풉니다.
여기서는 처음 녀석은 tomcat1, 두번째 녀석은 tomcat2라고 합니다.
2. tomcat2의 하위 디렉토리에 conf폴더로 접근해서 server.xml 을 열어 보도록합니다.
3. <Server port=”8005″ shutdown=”SHUTDOWN”> 를 <Server port=”7005″ shutdown=”SHUTDOWN”>로 변경합니다.
(앞서 포트는 tomcat1이 사용중이니)
4. Change <Connector port=”8080″ maxHttpHeaderSize=”8192″… 를 <Connector port=”7070″ maxHttpHeaderSize=”8192" 변경한다.(위와 같은이유)
5. <Connector port=”8009″ enableLookups=”false” redirectPort=”8443″ protocol=”AJP/1.3″ /> 를 <Connector port=”7009″ enableLookups=”false” redirectPort=”8443″ protocol=”AJP/1.3″ />로 변경합니다.
6. tomcat2/bin으로 가서 ./statup.sh를 실행합니다.
7. http://localhost:7070/을 확인합니다.
8. bin으로 가서 ./shutdown.sh를 해서 끕니다.
다음은 apache서버를 세팅합니다.
(mac은 기본적으로 깔려있죠. 경로 : /usr/libexec/apache2)
(mac은 기본적으로 깔려있죠. 경로 : /usr/libexec/apache2)
1. 압축을 풀고 ./configure을 합니다.
2. make를 입력하여 설치를 진행합니다.
3. 웹브라우저를 열고 http://localhost/로 가서 80포트로 잘작동하는지 확인합니다.
4. stop 합니다.
이제 mod_jk 차례입니다.
1. 압축을 풀고 {apache_directory}/module에 mod_jk.so 파일을 copy & paste합니다.
2. {apache_directory}/conf 안에서 httpd.conf 파일을 수정할수 있게 열고 끝에 아래 문장을 추가합니다.
LoadModule jk_module modules/mod_jk.so
3.{apache_directory}/conf 에 workers.properties라는 파일을 만든고 아래의 문장을 넣고 저장합니다.
worker.list=worker1,worker2
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker2.port=7009
worker.worker2.host=localhost #you can also specify other machine address or name
worker.worker2.type=ajp13
|
- wokrer1이 tomcat1, worker2가 tomcat2이다.
4. httpd.conf 에 workers.properties를 정의해줘야한다.
아래 내용을 넣어준다.
# Path to workers.properties
JkWorkersFile c:/apache2.2/conf/workers.properties
# Path to jk logs
JkLogFile c:/apache2.2/mod_jk.log
# Jk log level [debug/error/info] JkLogLevel info
# Jk log format
JkLogStampFormat “[%a %b %d %H:%M:%S %Y] “
# JkOptions for forwarding
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat “%w %V %T”
JkMount /jsp-examples/* worker1
JkMount /tomcat-docs/* worker2
|
5. jsp-examples로 tomcat1이 worker1로 tomcat-docs에는 tomcat2가 worker2로 되어 있다.
6. tomcat 1,2의 server.xml 을 수정합니다.
tomcat1에는 <Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”worker1″>
tomcat 2에는 <Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”worker2″>를 추가합니다.
7. tomcat1,2를 statup하고 apache webserver도 start합니다.
여기서 브라우저는 http://localhost/jsp-examples/ 와 http://localhost/tomcat-docs.를 둘다 가리킵니다.
여기서 이것을 구분하기 쉬운방법은 두 톰캣의 index.jsp의 제목을 변경해서 확인하는것입니다.
결국 둘은 따로 각각 경로를 가리키고 있는것을 확인할수가 있습니다.
이 시점에서 아파치 의 서브로 톰캣 인스턴스의 경로에 요청을 넘길 준비가 된것입니다.
하지만 여기서 톰캣에 대한 로드밸런싱에 관한 설정을 해줘야합니다. 만약 톰캣 1이 크래싱이 발생시 아파치는 자동으로 tomcat2에 어플리케이션에 대한 접근을 넘겨야합니다.
로드밸런싱 설정은 단순합니다.
우선
workers.properties를 열어줍니다.
아래의 굵은글씨를 수정,추가합니다.
#worker.list=worker1,worker2
worker.list=balancer
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
worker.worker2.port=7009
worker.worker2.host=localhost
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.balancer.type=lb
worker.balancer.balance_workers=worker1,worker2
worker.balancer.method=B
# specifies whether requests with SESSION ID’s should be routed back to the same #Tomcat worker.
worker.balancer. sticky_session =True
|
싱글 워커에 balance 를 call하고 worker type에 lb(load balance)를 정의했습니다.
이 워커(worker.balancer.balance_workers)들은 worker1과 worker2를 관리합니다.
그리고 method에 'B'를 정의했습니다.
마지막 sticky_session는 true로 해줘야합니다.
Session ID를 기반으로 라우팅을 지원할지에 대한 설정입니다..
마지막으로 httpd.conf를 열고 JkMount 맨앞부분에
JkMount /tomcat-docs/* balancer
JkMount /jsp-examples/* balancer
이 부분을 추가합니다.
이제 확인작업으로 tomcats와 apache를 구동하고 http://localhost/jsp-examples에 접속합니다. tomcat1or tomcat2에 접속하게 될것입니다.
tomcat1,2에 둘다 접속된다는것을 확인하기 위해 앞서 해당 index.jsp를 교체하였던걸 생각하고 새로고침을 하여 첫페이지의 제목이 바뀌는것을 확인합니다.
피드 구독하기:
글 (Atom)