- This topic has 1개 답변, 2명 참여, and was last updated 14 years, 7 months 전에 by ELem. This post has been viewed 5956 times
-
-
설치 환경 및 버전
OS
Fedora12
Apache2.2
httpd-2.2.13-4.fc12.i686
php
소스설치 5.2.12
mono
V2.1.1
톰캣은 J2EE 중 JSP와 서블릿을 중재하는 서블릿 컨테이너이지만,
glassfish는 tomcat과 같은 오픈소스이며, 웹 서비스 스택(메트로), EJBs, 자바 퍼시스턴스,
그리고 기타 많은 Java EE 5 스펙을 구현하는 Java EE 5-호환 어플리케이션 서버(was)입니다
현재 시스템은 APM+tomcat+Cubrid+mod_mono(asp.net) 구성된 상태이며
설치된 apache 에 tomcat대신 glassfish를 설치하여 연동하는 문서입니다
apache설치에 관한 내용은 문서가 많으니 검색해보시고 아니시면
yum 으로 설치하시기 바랍니다 => yum -y install httpd
모든작업은 root로 하겠습니다
다운을 먼저 받아보죠 아래사이트에서 받을수 있습니다
https://glassfish.dev.java.net/ko/public/downloadsindex.html#top
wget을 통해서 직접받을려면
# wget http://java.net/download/javaee5/v2.1.1_branch/promoted/Linux/glassfish-installer-v2.1.1-b31g-linux-ml.jar
다받았으면 설치할 디렉토리로 위치시킵니다 설치시 conf파일에 위치가 잡히기에 애초에 설치할 디렉토리에
위치시키고 설치 합니다 전 /usr/local 에 위치시키고 설치하겠습니다
# java -Xmx256m -jar glassfish-installer-v2.1.1-b31g-linux-ml.jar
실행하면 Accept or Decline? [A,D,a,d] 동의할거냐 라고 물어보네요 A 혹은 a 로 accept 합니다
동의하면 압축이 쫙 풀리기 시작합니다
glassfish 디렉토리안에는 setup.xml 과 setup-cluster.xml 보이는데 클러스터로 설치할게 아니니
setup.xml 을 사용할것이고 ant를 이용하여 설치 할것입니다
glassfish 디렉토리안에 lib/ant/bin 에 ant가 위치에 있으니 사용하면 됩니다
먼저 실행 퍼미션을 부여한후 실행합니다
# cd lib/ant/bin
# chmod u+x ant
# ./ant -f ../../../setup.xml
설치전에 tomcat 8080 포트가 활성화가 되어있다면
톰켓 서비스를 내리던가 8080 포트를 disable 해두시기 바랍니다
설치가 완료 되었으면 패스를 잡아줍니다
저는 전역변수로 잡기위해 /etc/profile에서 패스를 잡겠습니다
PATH=/usr/local/glassfish/bin:$PATH; export PATH
glassfish 서비스를 시작합니다
# asadmin start-domain domain1
8080포트로 접속해보면 잘 접속 되네요
admin 페이지도 확인해보면
4848포트로 접속해보면 잘접속되는걸 확인할수 있습니다
외부에서 접속할때는 8080 이나 4848포트을 방화벽에서 열어줘야 합니다
기본 비밀번호는 setup.xml에서 기술되어있는 데로
ID : admin PW: adminadmin 입니다
로그인하게되면 깔끔하게 한글화된 관리메뉴를 볼수 있습니다
일단 메뉴에 "Application Server" 을 클릭하면 오른쪽 메뉴에서 "관리자 비밀번호"
메뉴를 클릭하게 되면 비밀번호 변경이 가능합니다
추가적인 사항은 천천히 살펴보시기 바랍니다
이제 apache와 연동하겠습니다 tomcat과 연동하듯이 mod_jk 를 이용하고
방법도 거의 비슷합니다 다만 tomcat의 tomcat-ajp.jar,
commons-logging.jar , commons-modeler.jar
3개의 jar 파일이 필요 합니다
바이너리type 톰켓을 받아서 바로 풀고 jar파일만 가져오면 되겠습니다
# wget http://mirror.apache-kr.org/tomcat/tomcat-5/v5.5.28/bin/apache-tomcat-5.5.28.tar.gz
# tar zxvf apache-tomcat-5.5.28.tar.gz
위의 3개의 jar파일을 cp명령어로 glassfish 디렉토리안의 lib 디렉토리로 복사합니다
파일의 위치는 apache-tomcat-5.5.28/server/lib 에 있습니다
commons-logging 파일만 /apache-tomcat-5.5.28/bin 에 있습니다
# cp tomcat-ajp.jar /usr/local/glassfish/lib/
# cp commons-modeler-2.0.1.jar /usr/local/glassfish/lib/
# cp commons-logging-api-1.1.1.jar /usr/local/glassfish/lib
이제 연동부분을 세팅해보죠
apache의 conf 디렉토리에 worker.properties 파일을 만듭니다
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
worker.ajp13.socket_keepalive=1
바이너리 type mod_jk.so 를 다운받고 apache의 modules 디렉토리로 옴겨줍니다
# wget http://apache.tt.co.kr/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.28/i586/mod_jk-1.2.28-httpd-2.2.X.so
**위의 경로 한줄로 입력해야합니다 길어서 엔터를 제가 쳤음
# mv mod_jk-1.2.28-httpd-2.2.X.so /etc/httpd/modules/mod_jk.so
(저는 시스템에는 apache가 RPM으로 설치했습니다 apache설치유형에 따라 경로는 다를수있습니다)
apache 의 httpd.conf 파일을 열고 아래 내용을 기술합니다
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkLogFile logs/mod_jk.logJkMount /*.jsp ajp13
JkMount /*.do ajp13
JkMount /article/* ajp13
JkMount /uploadManager ajp13
JkMount /downManager ajp13JkMount /alice-upload ajp13
JkMount /servlet/* ajp13
JkMount /testManager ajp13
JkMount /glassfish-test/* ajp13
JkMount 에 기본적인 jsp ,do , servlet외 Unicorn 보드설치시 세팅도 같이 들어있는것인데요
arcticle, uploadManager, downManager, alice-upload, testManager 는 Unicorn보드에
관련된 사항이라 기술하셔도 되고 적지않으셔도 됩니다
아래 명령어를 수행해야 glassfish 에서 ajp기능이 가능해 집니다
# asadmin create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK=8009
명령 create-jvm-options이(가) 성공적으로 실행되었습니다.
여기서 의문이 드시는분이 있을 것 입니다 현재 저의 시스템에는 tomcat도 운영된다고 했는데
그럼 ajp13 프로토콜 포트인 8009 포트가 겹치는데 왜 glassfish 에서도 8009로 해줬는지
하시는분이 있을수도 있어 짧게 설명드리면 tomcat ajp13 포트를 변경했습니다 ㅡ_ㅡ;;
그에 해당하는 내용은 http://www.commit.co.kr/65 에서 다중 톰켓설정하는부분에서 ajp13 포트를
8009 외 다른번호로 변경해서 사용하는부분이 나옵니다 참고 하시길 바랍니다
일단 glassfish 서비스를 끕니다
# asadmin stop-domain domain1
glassfish domain1 의 docroot 을 apache의 htdoc위치와 맞춥니다
# mv docroot docroot.old
# ln -s /var/www/html /usr/local/glassfish/domains/domain1/docroot
저는 /var/www/html 이 apache의 htdoc 위치 입니다(apache설정에따라 위치는다를수있습니다)
그리고 테스트용 jsp파일을 위치 시킵니다 테스트용 파일이 위치시켰으면 glassfish 을 다시 켭니다
# asadmin start-domain domain1
그리고 apache를 재시작 합니다 http://localhost 나 http://ip 주소로
포트 붙이지 말고 접속해서 jsp 테스트 페이지가 보이신다면 정상적으로
apache 와 glassfish 가 연동되어서 JkMount 에 지정된 내용이 ajp13 프토로콜에 의해
apache 에서 glassfish 로 전달되어 잘 처리되었음을 알수 있습니다
글을 마치면서 원래는 Unicorn보드를 테스트삼아 띄워보려했지만 tomcat기반으로 개발된 보드라
에러를띄우면서 Unicorn 보드가 띄지않아 테스트 페이지의 스크린샷은 없음을 양해바랍니다
하다보니 시스템에 Apache+php+tomcat+Cubrid+mysql+oracle+mod_mono(asp.net)+glassfish
구성된 상태가 되어버렸네요 테스트용도로 virtualbox에 올렸던건데 이렇게 무지막지하게 설치될줄이야;;
오픈소스를 응원합니다 Blog https://hoing.io
Senior Database Administrator(MySQL, Oracle)사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요
- 답변은 로그인 후 가능합니다.