이번 포스팅은 최대한 간단하게 apache와 tomcat을 우분투(Ubuntu)에서 연동하는 것을 작성해보려고 합니다.


윈도우에서는 좀 쉬웠는데, 우분투에서는 조금 까다롭더라구요(크게 다르진 않음).


일단 apache 설치는... 


EC2 Instance (2) - 아파치(apache) 서버 + php 설치 및 접근 : http://ngee.tistory.com/73


위 포스팅을 참고하세요. 위 포스팅에는 yum으로 설치하는 거지만, 우분투 apt-cache, apt-get 사용하시면 되죠? :)


example : apt-get install apache2 (root 권한에서).


아무튼 apache를 설치했다고 가정하구요.


그 다음은 차근차근 해보도록 하겠습니다.



1. tomcat 설치하기.


root 권한에서..


apt-get install tomcat7 tomcat7-admin


하시면 설치되겠죠 :)


tomcat7-admin은 요거 설치하면, application 관리 편하게 할 수 있어서 좋아요. 그래서 설치~ :)


설치하면... 끝나요. tomcat은 좀 있다가 더 건들기로 하구요.


일단 ubuntu에서 디폴트 설치하면, 


tomcat home은 /usr/share/tomcat7 이구요.

tomcat 설정은 /etc/tomcat7 이구요.

tomcat 로그는 /var/log/tomcat7 이구요.

tomcat root directory는 /var/lib/tomcat7 이구요. ㅋㅋㅋㅋ 


아 머야, 왜케 복잡시러.. 암튼 그래요. 



2. mod_jk 설치하기.


mod_jk는 아파치(apache)랑 고양이녀석(톰캣, tomcat)과 연동에 필요한 모듈인데요. 


웹에서 다운로드 할 필요 있나요.


그냥 apt 쓰죠.


apt-cache search mod_jk 하면...


root@b:/...# apt-cache search mod_jk

libapache2-mod-jk - Apache 2 connector for the Tomcat Java servlet engine


일케 나오네요.. 저거 설치하면 되요.

root 권한에서.

apt-get install libapache2-mod-jk 

하시면 설치 완료!!! 자동으로 /etc/apache2/mods-available에 들어가니깐요. 

우리가 할일은 값들 조금 바꿔주는 것 정도에요. 그럼 3번에서...


3. mod_jk setting


setting 할껀데요. conf 파일이 어디에 있느냐 하면요.


/etc/apache2/mods_available/ 폴더에 jk.conf 입니다.


그러니깐. vi /etc/apache2/mods_available/jk.conf 하시면 뙇! 


아.. 요 파일은 건드리지 않아도 되는군요........... :)


그래도 이왕 파일 열어봤으니깐... 


<IfModule jk_module>

   

    JkWorkersFile /etc/libapache2-mod-jk/workers.properties

    # 요 위에 파일을 셋팅해야 하나,,, 암튼 좀 따 위 파일은 가보도록 하구요.


    # Our JK error log

    # You can (and should) use rotatelogs here

    JkLogFile /var/log/apache2/mod_jk.log

    # 로그 파일 위치 변경하고자 하시면, 위 내용을 수정하시면 되겠죠?


    # Our JK log level (trace,debug,info,warn,error)

    JkLogLevel info

    # 로그에 어디까지 출력할꺼냥!!! 요거죠. 걍 디폴트로 info 까지고 두고 넘어가겠습니다.


    # Our JK shared memory file

    JkShmFile /var/log/apache2/jk-runtime-status

    # 음... 몰라요. 머지 메모리 관련된 것을 설정하는 건가...   

....

....

....


에이 괜히 들어왔죠? 죄송해요....

그냥 저기에 jk 설정하는 부분이 있다는 걸... 알려드리고자 해서 !! 제가 그런거....는 아닙니다. 


일단 4번으로 가시죠..



4. JkWorkersFile 수정..


위 3번에서 JkWorkersFile 위치를 확인 할 수 있었죠? 그럼 vi로 열어보면.



vi /etc/libapache2-mod-jk/workers.properties


# OPTIONS ( very important for jni mode ) 


#

# workers.tomcat_home should point to the location where you

# installed tomcat. This is where you have your conf, webapps and lib

# directories.

#

workers.tomcat_home=/usr/share/tomcat7


#

# workers.java_home should point to your Java installation. Normally

# you should have a bin and lib directories beneath it.

#

workers.java_home=/usr/lib/jvm/java-7-openjdk-amd64


#

# You should configure your environment slash... ps=\ on NT and / on UNIX

# and maybe something different elsewhere.

#

ps=/

...
....
....
....
#
# The workers that your plugins should create and work with
worker.list=ajp13_worker

위 빨간색으로 해둔 것이.. 제대로 설정이 안되어 있을 수도 있어요.
저는 수정한거구요. tomcat_home과 java_home을 잘 수정하시면 될 것 같네요.
그 담에 worker.list에 ajp13_worker는 디폴트인데요. 이거 기억해두세요.

apache 쪽에 가서 추가해야 하거든요.



5. tomcat .... server.xml 수정


요 파일은요.


/var/lib/tomcat7/conf/server.xml 인데요.


여기 열어서 아래 처럼 추가하세용.



  <Service name="Catalina">

  <Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               URIEncoding="UTF-8"

               redirectPort="8443" />


    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />



빨간색 라인만 추가하시면 됩니다.



6. 마지막 apache 셋팅 수정.


우리가 mod_jk 설치했는데, 왜 Fedora 같은데서는 잘만 LoadModule 하더니, 왜 안하냐고요?


apache2.conf 열어보시면요.


# Include module configuration:

Include mods-enabled/*.load

Include mods-enabled/*.conf


일케 되어있어요. 즉 아까 우리가 /etc/apache2/mods_available/jk.conf 파일 열었던 것을 불러온다는거죠 ㅎ

아.. 파일에는 mods_enabled/*.conf 라고 되어있는데, mods_available 이라니 무슨 헛소리냐구요?


mods_enabled 폴더가서 ls -al 해보세용. 링크되어 있습니다. 


암튼 잡소리 그만하고. apache2.conf 말구요. sites-available 폴더에 defaults 열어보세용.


vi /etc/apache2/sites-available/default


....

....

....

....

....


    JKMount /test/* ajp13_worker


</VirtualHost>


아파치 root에 하위 test 디렉토리의 모든 파일을 ajp13_worker로 연결해라!! 


ajp13_worker는 어디서 왔냐하면 4번을 다시 읽어보시면 되겠습니다. 


test라는 Java 애플리케이션이 존재해야겠죠? ㅎ 


+ Recent posts