FREEDOM. FRIENDS. FEATURES. FIRST.
페도라 한국 사용자 모임

apache glassfish 연동

게시판 Tech/Tip apache glassfish 연동

  • This topic has 1개 답변, 2명 참여, and was last updated 10 years, 9 months 전에 by ELem. This post has been viewed 132 times
  • 만든이
    게시글
  • #12007
    태랑
    키 마스터
    • 게시글207
    • 댓글878
    • 총합1085
    • ★★
    @admin

    설치 환경 및 버전

    OS

    Fedora12

    Apache2.2

    httpd-2.2.13-4.fc12.i686

    php

    소스설치 5.2.12

    mono

    V2.1.1

     

     

    톰캣은 J2EE JSP와 서블릿을 중재하는 서블릿 컨테이너이지만,

    glassfishtomcat과 같은 오픈소스이며, 웹 서비스 스택(메트로), 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

     

    w get을 통해서 직접받을려면

    # w get http://java.net/download/javaee5/v2.1.1_branch/promoted/Linux/glassfish-installer-v2.1.1-b31g-linux-ml.jar

     

    **호스팅서버 단어 필터링에 의해서 w get 으로 띄워쓰지만  붙여써야 합니다

     

    다받았으면 설치할 디렉토리로 위치시킵니다 설치시 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파일만 가져오면 되겠습니다

    # w get 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 디렉토리로 옴겨줍니다

    # w get 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.log

    JkMount /*.jsp ajp13
    JkMount /*.do ajp13
    JkMount /article/* ajp13
    JkMount /uploadManager ajp13
    JkMount /downManager ajp13

    JkMount /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 로 메일주세요

0 답변 글타래를 보이고 있습니다
  • 글쓴이
    답변
    • #12553
      ELem
      참가자
      • 게시글67
      • 댓글672
      • 총합739
      • ★★
      @Bardisch

      뭐...뭔가 거대한 환경이군뇨;;
      글래스피시 전에 JavaEE 뭔가 하고 설치할때 같이 딸려서 설치되길래 잘 썼던 기억이 ㅋ

0 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.