서버/Linux III 2016. 4. 6. 12:29

Linux III - 12. Apache 웹-서버 (Tomcat & Tomcat-Connector)

 

 

 

login as: root
root@192.168.1.100's password:
Last login: Wed Apr  6 15:38:59 2016 from 192.168.1.1
[root@main /root]#

 

login as: root
root@192.168.1.101's password:
Last login: Thu Apr  7 10:32:37 2016 from 192.168.1.1
[root@clone1 /root]#

 

 

 

 

1. Tomcat

 

Apache 웹-서버는 html, htmls에 대해서 클라이언트에게 서비스 응답을 실시한다. 그러나 클라이언트로부터 수신한 서비스 요청이 JSP인 경우 처리할 수 없기 때문에 이를 Tomcat에게 전달하여 처리한다. 이때, Tomcat은 WAS(Web Application Server)라고 하며, 포트 번호는 '8080'을 사용한다.

 

 

 

 

  ① 클라이언트가 아파치 서버에게 http,https 서비스 요청을 실시한다. 

 

  ② 이때, 아파치 서버가 수신한 서비스 요청이 http, https이면 자신이 처리하고, 클라이언트에게 응답한다.

 

  ③ 만약, 서비스 요청이 http, https가 아닌 jsp이면, localhost:8080을 이용하여 톰켓에게 전달한다.

 

  ④ 이때, 톰켓 커넥터를 통하여 전달된다.

 

  ⑤ 톰켓은 jsp 서비스 요청을 처리한 이후, 아파치 서버에게 전달한다.

 

  ⑥ 아파치 서버는 톰켓으로부터 수신한 응답과 자신의 응답을 클라이언트에게 전송한다.

 

 

Tomcat으로만으로도 JSP 기반 웹-서버 구현이 가능하다. 그럼에도 Apache 서버와 연동해서 사용하는 이유는 Apache에서 제공하는 다양한 웹-서버 기능을 이용할 수 있기 때문이다.

 

 

 

 

2. JAVA 설치

 

 - 현재 설치된 자바 버전을 확인한다.

 

[root@main /root]# java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

 

 

 

 - 설치 및 업데이트 가능한 자바 버전을 확인한다.


[root@main /root]# yum list | grep java-1.7.0-openjdk.x86_64
java-1.7.0-openjdk.x86_64                1:1.7.0.65-2.5.1.2.el6_5       @anaconda-CentOS-201410241409.x86_64/6.6
java-1.7.0-openjdk.x86_64                1:1.7.0.99-2.6.5.0.el6_7       updates

 

 

 

 - 'yum' 명령어를 이용하여 'java-1.7.0-openjdk.x86_64를 설치하도로록 한다.

 

[root@main /root]# yum -y install java-1.7.0-openjdk.x86_64

 

~ 중간 생략~


Updated:
  java-1.7.0-openjdk.x86_64 1:1.7.0.99-2.6.5.0.el6_7

Complete!

 

 

[root@main /root]# java -version
java version "1.7.0_99"
OpenJDK Runtime Environment (rhel-2.6.5.0.el6_7-x86_64 u99-b00)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

 

 

 

 

3. Tomcat 설치

 

 - Apache와 Tomcat 연동에 필요한 'httpd-devel'를 설치한다. 

 

[root@main /root]# yum -y install httpd-devel

 

 

[root@main /root]# rpm -qa httpd-devel
httpd-devel-2.2.15-47.el6.centos.4.x86_64

 

 

[root@main /root]# ls /usr/sbin/apxs  <- 아파치 모듈 컴파일 도구
/usr/sbin/apxs

 

 

 

 - Tomcat 설치 유무를 확인한다.

 

[root@clone1 /root]#  rpm -qa | grep tomcat
[root@clone1 /root]#

 

 

 

 - 설치 가능한 Tomcat 패키지를 확인한다.


[root@main /root]# yum list | grep tomcat
apache-tomcat-apis.noarch                0.1-1.el6                      base
jakarta-commons-collections-tomcat5.noarch
jakarta-commons-dbcp-tomcat5.noarch      1.2.1-13.8.el6                 base
jakarta-commons-pool-tomcat5.x86_64      1.3-12.7.el6                   base
tomcat6.x86_64                           6.0.24-94.el6_7                updates
tomcat6-admin-webapps.x86_64             6.0.24-94.el6_7                updates
tomcat6-docs-webapp.x86_64               6.0.24-94.el6_7                updates
tomcat6-el-2.1-api.x86_64                6.0.24-94.el6_7                updates
tomcat6-javadoc.x86_64                   6.0.24-94.el6_7                updates
tomcat6-jsp-2.1-api.x86_64               6.0.24-94.el6_7                updates
tomcat6-lib.x86_64                       6.0.24-94.el6_7                updates
tomcat6-servlet-2.5-api.x86_64           6.0.24-94.el6_7                updates
tomcat6-webapps.x86_64                   6.0.24-94.el6_7                updates
tomcatjss.noarch                         2.1.0-4.el6                    base

 

 

 

 - 'yum' 명령어를 이용하여 Tomcat 관련 패키지를 설치하도로록 한다.

 

[root@main /root]# yum -y install tomcat6*

 


[root@main /root]# rpm -qa | grep tomcat
tomcat6-admin-webapps-6.0.24-94.el6_7.x86_64
tomcat6-jsp-2.1-api-6.0.24-94.el6_7.x86_64
apache-tomcat-apis-0.1-1.el6.noarch
tomcat6-el-2.1-api-6.0.24-94.el6_7.x86_64
tomcat6-javadoc-6.0.24-94.el6_7.x86_64
tomcat6-lib-6.0.24-94.el6_7.x86_64
tomcat6-webapps-6.0.24-94.el6_7.x86_64
tomcat6-servlet-2.5-api-6.0.24-94.el6_7.x86_64
tomcat6-6.0.24-94.el6_7.x86_64
tomcat6-docs-webapp-6.0.24-94.el6_7.x86_64

 

 

[root@main /root]# ls /etc/tomcat6
Catalina         catalina.properties  log4j.properties    server.xml        tomcat6.conf
catalina.policy  context.xml          logging.properties  tomcat-users.xml  web.xml

 

 

 

 - Tomcat 서비스를 활성화 한다.

 

[root@main /root]# service tomcat6 status
tomcat6 is stopped                                         [  OK  ]


[root@main /root]# service tomcat6 start
Starting tomcat6:                                          [  OK  ]


[root@main /root]# service tomcat6 status
tomcat6 (pid 38642) is running...                          [  OK  ]

 

 

 

 - 재부팅시에도 Tomcat 서비스가 활성화되도록 한다.

 

[root@main /root]# chkconfig --list tomcat6
tomcat6         0:해제  1:해제  2:해제  3:해제  4:해제  5:해제  6:해제


[root@main /root]# chkconfig tomcat6 on


[root@main /root]# chkconfig --list tomcat6
tomcat6         0:해제  1:해제  2:활성  3:활성  4:활성  5:활성  6:해제

 

 

 

 - clone1에서 'www.test.com:8080'으로 접속하여 확인한다.

 

 

 

 

 

4. Tomcat Connector 설치

 

 - Tomcat Connector는 Apache가 수신한 JSP 요청을 Tomcat에게 전달하는 역할을 하는 모듈이다.

 - 'yum'으로는 설치가 불가능하기 때문에 'wget' 명령어와 URL를 직접 입력하여 설치해야 한다.

 

 

 - Tomcat Connector를 다운로드 받을 디렉토리를 생성하여 다운로드를 실시한다.

 

[root@main /root]# mkdir tom
[root@main /root]# cd tom
[root@main /root/tom]# wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.32-src.tar.gz

 

@Tomcat Connector wget 주소.txt

 

 

 - 'tar' 명령어를 이용하여 압축을 해지한다.

 

[root@main /root/tom]# ls
tomcat-connectors-1.2.32-src.tar.gz

 

 

[root@main /root/tom]# tar zxvf tomcat-connectors-1.2.32-src.tar.gz

 

 

 

 - Tomcat Connector 'native' 디렉토리로 이동하여 모듈 설치 및 컴파일을 실시한다.


[root@main /root/tom]# ls
tomcat-connectors-1.2.32-src  tomcat-connectors-1.2.32-src.tar.gz
[root@main /root/tom]#
[root@main /root/tom]# cd tomcat-connectors-1.2.32-src
[root@main /root/tom/tomcat-connectors-1.2.32-src]#
[root@main /root/tom/tomcat-connectors-1.2.32-src]# cd native
[root@main /root/tom/tomcat-connectors-1.2.32-src/native]# ls
BUILDING.txt  Makefile.in  STATUS.txt  apache-1.3    common        docs  netscape
CHANGES       NEWS         TODO.txt    apache-2.0    configure     iis   nt_service
Makefile.am   README.txt   aclocal.m4  buildconf.sh  configure.in  jni   scripts

 

[root@main /root/tom/tomcat-connectors-1.2.32-src/native]# ./buildconf.sh
rm autom4te.cache
libtoolize --force --automake --copy
aclocal
autoheader
automake -a --foreign --copy
autoconf
rm autom4te.cache

 

 

[root@main /root/tom/tomcat-connectors-1.2.32-src/native]# ls /usr/sbin/apxs
/usr/sbin/apxs

 


[root@main /root/tom/tomcat-connectors-1.2.32-src/native]# ./configure --with-apxs=/usr/sbin/apxs
~ 중간 생략 ~

 


[root@main /root/tom/tomcat-connectors-1.2.32-src/native]# make

 


[root@main /root/tom/tomcat-connectors-1.2.32-src/native]# make install
~ 중간 생략~

 

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/lib64/httpd/modules/mod_jk.so

 

Please be sure to arrange /etc/httpd/conf/httpd.conf...

~ 중간 생략 ~

 

 

[root@main /root/tom/tomcat-connectors-1.2.32-src/native]# cd
[root@main /root]#

 

 

 

 - 컴파일된 'mod_jk.so' 파일이 생성되었는지 확인한다.


 

[root@main /root]# ls /usr/lib64/httpd/modules/mod_jk.so
/usr/lib64/httpd/modules/mod_jk.so

 

[root@main /root]# ls /etc/httpd/modules/mod_jk.so   

/etc/httpd/modules/mod_jk.so


 

@mod_jk.so &amp; workers.properites 설정.txt

 

 

 - '/etc/httpd/conf/httpd.conf' 파일에서 'mod_jk.so' 관련 설정을 실시한다.


[root@main /root]# vi /etc/httpd/conf/httpd.conf

 

~ 중간 생략 ~

 
 405 DirectoryIndex index.html index.html.var index.htm index.php
index.jsp
~
중간 생략 ~

 

1008 #<VirtualHost *:80>

1009 #    ServerAdmin webmaster@dummy-host.example.com

1010 #    DocumentRoot /www/docs/dummy-host.example.com

1011 #    ServerName dummy-host.example.com

1012 #    ErrorLog logs/dummy-host.example.com-error_log

1013 #    CustomLog logs/dummy-host.example.com-access_log common

1014 #</VirtualHost>

1015

1016 LoadModule jk_module modules/mod_jk.so

1017

1018 <IfModule jk_module>

1019 JkWorkersFile /etc/httpd/conf/workers.properties

1020 JkLogFile /etc/httpd/logs/mod_jk.log

1021 JkShmFile /usr/share/tomcat6/logs/jk.shm

1022 JkLogLevel info

1023 JkMount /*.jsp worker2 

 

: wq!

 

 

 

 

 - '/etc/httpd/conf/' 디렉토리에 'workers.properties' 파일을 생성하여 Apache로 수신한 요청을 톰켓으로 전달할수 있도록

   다음과 같은 설정을 실시한다.

 

[root@main /root]# vi /etc/httpd/conf/workers.properties

 

  1 worker.list=worker2
  2 worker.worker2.type=ajp13
  3 worker.worker2.host=localhost
  4 worker.worker2.port=8009
  5 worker.worker2.lbfactor=1
  6 worker.worker2.connection_pool_timeout=600
  7 worker.worker2.socket_keepalive=1
  8 worker.worker2.socket_timeout=60

 

: wq! 

 

 

 

 - 'httpd', 'tomcat6' 서비스를 재시작한다.


[root@main /root]# service httpd restart
httpd 를 정지 중:                                          [  OK  ]
httpd (을)를 시작 중:                                      [  OK  ]

 

 

[root@main /root]# service tomcat6 restart
Stopping tomcat6: waiting for processes 38642 to exit
                                                           [  OK  ]
Starting tomcat6:                                          [  OK  ]

 

 

 

 - clone1에서 'www.test.com/index.jsp'로 접속 테스트를 실시한다.

 

 

 

 

 

 - '/usr/share/tomcat6/webapps/ROOT/' 디렉토리에 'tomcat.jsp' 파일을 생성한다.

 

[root@main /root]# vi /usr/share/tomcat6/webapps/ROOT/tomcat.jsp

 

  1 <html><body><h1> Welcome to www.test.com/tomcat.jsp <h1></body><html>

 

: wq! 

 

 

 

 - clone1에서 'www.test.com/tomcat.jsp'로 접속 테스트를 실시한다.

 

 

 

Posted by 김정우 강사(카카오톡 : kim10322)
,


Q