Tuesday, April 17, 2018

CentOS 7.3 리눅스 네트워크 ] 10. WEB & WAS


안녕하세요. 썬구루입니다. 이 게시물에서는 CentOS 7.3 리눅스 기반에 Apache HTTPD(WEB)과 Tomcat(WAS) 서버 설치하는 방법에 대해 알아보도록 하겠습니다.

서버 하드웨어 시스템에 단지 윈도우 서버, 리눅스, 유닉스 운영체제를 설치하여 서비스를 하는 것만은 아닙니다. 이들 서버에서 표준 서비스 프로그램을 설치한 후 서비스 콘텐츠를 개발하여 회사 내부 직원들 또는 외부의 고객들에게 서비스를 제공하도록 만드는 것이죠.

단순하게 네이버만 놓고 보더라도 수많은 서버 시스템들이 존재하는데 우리는 이들 서버에 설치, 구성되어 있는 웹메일, N드라이브, 스케줄러, 카페, 블로그 같은 서비스를 제공받고 있습니다.

요즘은 컴퓨터 세상, 모든 것이 네트워크에 연결되어 있다고 말해도 과언이 아닙니다. 우리가 버스나 지하철에서 정보를 이용하기 위해 스마트폰이라는 기기를 사용하고 LTE나 Wi Fi 네트워크 서비스를 이용하여 인터넷에 접속하는 것이죠. 스마트폰은 내 손안에 컴퓨터인 것이죠.

업무가 전산화될 때 예전에는 CS(Client-Server) 모델로 서버 프로그램과 클라이언트 프로그램을 개발하여 만들어주고 클라이언트 프로그램을 직원들 컴퓨터에 배포하였습니다. 어떠한 기능을 추가하기 위해서는 서버 및 클라이언트 프로그램을 모두 변경, 업데이트해줘야 했었습니다.

하지만 요즘 업무 전산환경은 웹 기반 모델로 되어 있습니다. 클라이언트(데스크톱, 노트북, 스마트 패드, 스마트폰 등)에 웹브라우저만 설치되어 있으면 이를 이용하여 업무 시스템에 접근하여 업무를 보는 것입니다. 이때 이용되는 것이 보통 WEB, WAS, DB 서버입니다.

기업이 영리를 추구하기 위해 웹(Web)을 통하여 고객에 접근하고 회사와 제품을 홍보 그리고 제품을 판매할 수 있습니다. 웹의 이점은 24시간 365일 고객에게 서비스를 제공할 수 있다는 것입니다. 우리가 옥션에서 원하는 물품을 구매할 때 일과 시간이든 새벽이든 상관없이 구매할 수 있는 것처럼요.


구 분
설 명
Web Site (WEB)
 문자, 그림, 오디오, 비디오 같은 데이터를 웹을 통해 제공하는 서비스를 말한다.
Web Application (WAS)
 웹 기반 클라이언트-서버 소프트웨어 애플리케이션을 말한다. 단적인 예가 웹메일, 메시징 서비스, 인터넷 상거래가 있다. 

고정된 내용, 예를 들어 회사 홈페이지 같은  바뀌지 않는 내용(Static Web Page)을 서비스하기 위해 HTML, CSS, Java Script 같은 언어가 사용되고 사용자 요청에 따라 다른 웹페이지(Dynamic Web Page)를 출력하는 다시 말해 사용자 맞춤형 페이지를 구현하기 위해 JSP, PHP, ASP.NET 같은 언어가 사용됩니다.

기업이나 관공서가 고객들에게 웹 서비스를 제공하기 위해 보통 데이터베이스와 연동됩니다. 웹 기반 고객서비스 제공을 위해 아래와 같은 구조로 구성됩니다. 내/외부망, 방화벽 그런 것은 생략하였습니다.


이 게시물에서 HTML 서비스를 제공하시기 위해 사용되는 공개용 웹 서버 프로그램인 Apache HTTPD와 JSP와 HTML 서비스를 제공하기 위해 사용되는 공개용 웹 응용 서버 프로그램인 Apache Tomcat 설치 방법에 대해 알아봅니다. 구성 파일 상세 설정에 대해서는 이 게시물에서 설명하지 않습니다.

웹 서버
웹 응용 서버
웹 응용 서버 비교
 Apache HTTPD
Apache Tomcat (JSP)
 Servlet
Oracle WebLogic (JSP)
 Servlet, EJB
 Tmax WebtoB
Tmax Jeus (JSP)
 Servlet, EJB

Microsoft IIS (ASP)
-
 IBM WebSphere
 Servlet, EJB

Red Hat JBoss
 Servlet, EJB

WEB, WAS, DB 테스트를 위해 사용할 가상머신에 대한 IP 주소 및 응용프로그램 정보는 아래와 같습니다.

가상머신 이름
호스트 이름
서비스 포트
응용 프로그램
WEB01
web01
 80
 Apache HTTPD
WAS01
was01
 8080
 Apache Tomcat
DB01
db01
 3306
 MariaDB




■ Apache HTTPD

1). Apache HTTPD 설치

CentOS 7.3에서 Apache HTTPD(WEB) 서비스를 동작시키기 위해 CentOS 7.3 설치 DVD를 가상머신에 연결한다. 그리고 아래와 같은 명령을 사용하여 HTTPD를 설치한다.

[root@web01 ~]# cd /etc/yum.repos.d/
[root@web01 yum.repos.d]# ls

CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo  CentOS-fasttrack.repo

[root@web01 yum.repos.d]#
[root@web01 yum.repos.d]# vi CentOS-Media.repo

# CentOS-Media.repo
#
#  This repo can be used with mounted DVD media, verify the mount point for
#  CentOS-7.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c7-media [command]
#
# or for ONLY the media repo, do this:
#
#  yum --disablerepo=\* --enablerepo=c7-media [command]

[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///run/media/root/CentOS\ 7\ x86_64/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[root@web01 yum.repos.d]#
[root@web01 yum.repos.d]# yum -y --disablerepo=\* --enablerepo=c7-media install httpd
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * c7-media:
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-45.el7.centos will be installed
--> Processing Dependency: httpd-tools = 2.4.6-45.el7.centos for package: httpd-2.4.6-45.el7.centos.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-45.el7.centos.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-45.el7.centos.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-45.el7.centos.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-45.el7.centos will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================
 Package                          Arch                        Version                                   Repository                     Size
============================================================================================================================================
Installing:
 httpd                            x86_64                      2.4.6-45.el7.centos                       c7-media                      2.7 M
Installing for dependencies:
 apr                              x86_64                      1.4.8-3.el7                               c7-media                      103 k
 apr-util                         x86_64                      1.5.2-6.el7                               c7-media                       92 k
 httpd-tools                      x86_64                      2.4.6-45.el7.centos                       c7-media                       84 k
 mailcap                          noarch                      2.1.41-2.el7                              c7-media                       31 k

Transaction Summary
============================================================================================================================================
Install  1 Package (+4 Dependent packages)

Total download size: 3.0 M
Installed size: 10 M
Downloading packages:
경고: /run/media/root/CentOS 7 x86_64/Packages/apr-1.4.8-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for apr-1.4.8-3.el7.x86_64.rpm is not installed
--------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                       171 MB/s | 3.0 MB  00:00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-3.1611.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : apr-1.4.8-3.el7.x86_64                                                                                                   1/5
  Installing : apr-util-1.5.2-6.el7.x86_64                                                                                              2/5
  Installing : httpd-tools-2.4.6-45.el7.centos.x86_64                                                                                   3/5
  Installing : mailcap-2.1.41-2.el7.noarch                                                                                              4/5
  Installing : httpd-2.4.6-45.el7.centos.x86_64                                                                                         5/5
  Verifying  : httpd-tools-2.4.6-45.el7.centos.x86_64                                                                                   1/5
  Verifying  : mailcap-2.1.41-2.el7.noarch                                                                                              2/5
  Verifying  : apr-1.4.8-3.el7.x86_64                                                                                                   3/5
  Verifying  : httpd-2.4.6-45.el7.centos.x86_64                                                                                         4/5
  Verifying  : apr-util-1.5.2-6.el7.x86_64                                                                                              5/5

Installed:
  httpd.x86_64 0:2.4.6-45.el7.centos                                                                                         

Dependency Installed:
  apr.x86_64 0:1.4.8-3.el7    apr-util.x86_64 0:1.5.2-6.el7    httpd-tools.x86_64 0:2.4.6-45.el7.centos    mailcap.noarch 0:2.1.41-2.el7

Complete!
[root@web01 yum.repos.d]# 

아래와 같은 명령을 실행하여 index.html 파일을 생성한다.

[root@web01 yum.repos.d]# echo "test html" > /var/www/html/test.html

아래와 같은 명령을 사용하여 HTTPD 서비스를 실행한다.

[root@web01 yum.repos.d]# firewall-cmd --permanent --add-service=http

success

[root@web01 yum.repos.d]# firewall-cmd --reload

success

[root@web01 yum.repos.d]# systemctl enable httpd

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

[root@web01 yum.repos.d]#
[root@web01 yum.repos.d]# systemctl start httpd
[root@web01 yum.repos.d]#
[root@web01 yum.repos.d]# ps -ef | grep httpd

root      4130     1  0 08:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    4131  4130  0 08:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    4132  4130  0 08:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    4134  4130  0 08:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    4137  4130  0 08:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    4138  4130  0 08:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root      4143  3636  0 08:06 pts/1    00:00:00 grep --color=auto httpd

[root@web01 yum.repos.d]#

2). HTTPD 서비스 시작 종료

systemctl [ start | stop ] httpd 

3). 시스템 부팅 시 HTTPD 서비스 자동 시작

systemctl [ enable | disable ] httpd

4). 웹서비스 확인

호스트 운영체제(여러분들의 윈도우 운영체제)에 있는 웹브라우저를 사용하여 웹서버로 접속 테스트를 합니다.





■ Apache Tomcat

1). Apache Tomcat 설치

CentOS 7.3에서 Apache Tomcat(WAS) 을 설치하기 위해 위해 CentOS 7.3 설치 ISO 파일을 가상머신에 연결하여 아래와 같이 yum 명령을 사용하여 설치합니다.

[root@was01 yum.repos.d]# cd /etc/yum.repos.d/
[root@was01 yum.repos.d]# more /etc/yum.repos.d/CentOS-Media.repo

# CentOS-Media.repo
#
#  This repo can be used with mounted DVD media, verify the mount point for
#  CentOS-7.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c7-media [command]
#
# or for ONLY the media repo, do this:
#
#  yum --disablerepo=\* --enablerepo=c7-media [command]

[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
 file:///run/media/root/CentOS\ 7\ x86_64/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[root@was01 yum.repos.d]#
[root@was01 yum.repos.d]# yum -y --disablerepo=\* --enablerepo=c7-media install tomcat

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * c7-media:
Resolving Dependencies
--> Running transaction check
---> Package tomcat.noarch 0:7.0.69-10.el7 will be installed
--> Processing Dependency: tomcat-lib = 7.0.69-10.el7 for package: tomcat-7.0.69-10.el7.noarch
--> Processing Dependency: apache-commons-pool for package: tomcat-7.0.69-10.el7.noarch
--> Processing Dependency: apache-commons-logging for package: tomcat-7.0.69-10.el7.noarch
--> Processing Dependency: apache-commons-dbcp for package: tomcat-7.0.69-10.el7.noarch
--> Processing Dependency: apache-commons-daemon for package: tomcat-7.0.69-10.el7.noarch
--> Processing Dependency: apache-commons-collections for package: tomcat-7.0.69-10.el7.noarch
--> Running transaction check
---> Package apache-commons-collections.noarch 0:3.2.1-22.el7_2 will be installed
---> Package apache-commons-daemon.x86_64 0:1.0.13-6.el7 will be installed
---> Package apache-commons-dbcp.noarch 0:1.4-17.el7 will be installed
--> Processing Dependency: mvn(org.apache.geronimo.specs:geronimo-jta_1.1_spec) for package: apache-commons-dbcp-1.4-17.el7.noarch
---> Package apache-commons-logging.noarch 0:1.1.2-7.el7 will be installed
--> Processing Dependency: mvn(logkit:logkit) for package: apache-commons-logging-1.1.2-7.el7.noarch
--> Processing Dependency: mvn(log4j:log4j) for package: apache-commons-logging-1.1.2-7.el7.noarch
--> Processing Dependency: mvn(avalon-framework:avalon-framework-api) for package: apache-commons-logging-1.1.2-7.el7.noarch
---> Package apache-commons-pool.noarch 0:1.6-9.el7 will be installed
---> Package tomcat-lib.noarch 0:7.0.69-10.el7 will be installed
--> Processing Dependency: tomcat-servlet-3.0-api = 7.0.69-10.el7 for package: tomcat-lib-7.0.69-10.el7.noarch
--> Processing Dependency: tomcat-jsp-2.2-api = 7.0.69-10.el7 for package: tomcat-lib-7.0.69-10.el7.noarch
--> Processing Dependency: tomcat-el-2.2-api = 7.0.69-10.el7 for package: tomcat-lib-7.0.69-10.el7.noarch
--> Processing Dependency: ecj >= 1:4.2.1 for package: tomcat-lib-7.0.69-10.el7.noarch
--> Running transaction check
---> Package avalon-framework.noarch 0:4.3-10.el7 will be installed
--> Processing Dependency: xalan-j2 for package: avalon-framework-4.3-10.el7.noarch
---> Package avalon-logkit.noarch 0:2.1-14.el7 will be installed
--> Processing Dependency: jms for package: avalon-logkit-2.1-14.el7.noarch
---> Package ecj.x86_64 1:4.2.1-8.el7 will be installed
---> Package geronimo-jta.noarch 0:1.1.1-17.el7 will be installed
---> Package log4j.noarch 0:1.2.17-15.el7 will be installed
--> Processing Dependency: mvn(javax.mail:mail) for package: log4j-1.2.17-15.el7.noarch
---> Package tomcat-el-2.2-api.noarch 0:7.0.69-10.el7 will be installed
---> Package tomcat-jsp-2.2-api.noarch 0:7.0.69-10.el7 will be installed
---> Package tomcat-servlet-3.0-api.noarch 0:7.0.69-10.el7 will be installed
--> Running transaction check
---> Package geronimo-jms.noarch 0:1.1.1-19.el7 will be installed
---> Package javamail.noarch 0:1.4.6-8.el7 will be installed
---> Package xalan-j2.noarch 0:2.7.1-23.el7 will be installed
--> Processing Dependency: xerces-j2 for package: xalan-j2-2.7.1-23.el7.noarch
--> Processing Dependency: osgi(org.apache.xerces) for package: xalan-j2-2.7.1-23.el7.noarch
--> Running transaction check
---> Package xerces-j2.noarch 0:2.11.0-17.el7_0 will be installed
--> Processing Dependency: xml-commons-resolver >= 1.2 for package: xerces-j2-2.11.0-17.el7_0.noarch
--> Processing Dependency: xml-commons-apis >= 1.4.01 for package: xerces-j2-2.11.0-17.el7_0.noarch
--> Processing Dependency: osgi(org.apache.xml.resolver) for package: xerces-j2-2.11.0-17.el7_0.noarch
--> Processing Dependency: osgi(javax.xml) for package: xerces-j2-2.11.0-17.el7_0.noarch
--> Running transaction check
---> Package xml-commons-apis.noarch 0:1.4.01-16.el7 will be installed
---> Package xml-commons-resolver.noarch 0:1.2-15.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================
 Package                             Arch            Version                    Repository         Size
========================================================================================================
Installing:
 tomcat                              noarch          7.0.69-10.el7              c7-media           88 k
Installing for dependencies:
 apache-commons-collections          noarch          3.2.1-22.el7_2             c7-media          509 k
 apache-commons-daemon               x86_64          1.0.13-6.el7               c7-media           54 k
 apache-commons-dbcp                 noarch          1.4-17.el7                 c7-media          167 k
 apache-commons-logging              noarch          1.1.2-7.el7                c7-media           78 k
 apache-commons-pool                 noarch          1.6-9.el7                  c7-media          113 k
 avalon-framework                    noarch          4.3-10.el7                 c7-media           88 k
 avalon-logkit                       noarch          2.1-14.el7                 c7-media           87 k
 ecj                                 x86_64          1:4.2.1-8.el7              c7-media          1.4 M
 geronimo-jms                        noarch          1.1.1-19.el7               c7-media           31 k
 geronimo-jta                        noarch          1.1.1-17.el7               c7-media           20 k
 javamail                            noarch          1.4.6-8.el7                c7-media          758 k
 log4j                               noarch          1.2.17-15.el7              c7-media          443 k
 tomcat-el-2.2-api                   noarch          7.0.69-10.el7              c7-media           79 k
 tomcat-jsp-2.2-api                  noarch          7.0.69-10.el7              c7-media           93 k
 tomcat-lib                          noarch          7.0.69-10.el7              c7-media          3.8 M
 tomcat-servlet-3.0-api              noarch          7.0.69-10.el7              c7-media          210 k
 xalan-j2                            noarch          2.7.1-23.el7               c7-media          1.9 M
 xerces-j2                           noarch          2.11.0-17.el7_0            c7-media          1.1 M
 xml-commons-apis                    noarch          1.4.01-16.el7              c7-media          227 k
 xml-commons-resolver                noarch          1.2-15.el7                 c7-media          108 k

Transaction Summary
========================================================================================================
Install  1 Package (+20 Dependent packages)

Total download size: 11 M
Installed size: 14 M
Downloading packages:
경고: /run/media/root/CentOS 7 x86_64/Packages/apache-commons-collections-3.2.1-22.el7_2.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for apache-commons-collections-3.2.1-22.el7_2.noarch.rpm is not installed
--------------------------------------------------------------------------------------------------------
Total                                                                   913 kB/s |  11 MB  00:00:12
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-3.1611.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : apache-commons-pool-1.6-9.el7.noarch                                                1/21
  Installing : tomcat-servlet-3.0-api-7.0.69-10.el7.noarch                                         2/21
  Installing : apache-commons-collections-3.2.1-22.el7_2.noarch                                    3/21
  Installing : geronimo-jms-1.1.1-19.el7.noarch                                                    4/21
  Installing : xml-commons-apis-1.4.01-16.el7.noarch                                               5/21
  Installing : xml-commons-resolver-1.2-15.el7.noarch                                              6/21
  Installing : xalan-j2-2.7.1-23.el7.noarch                                                        7/21
  Installing : xerces-j2-2.11.0-17.el7_0.noarch                                                    8/21
  Installing : tomcat-jsp-2.2-api-7.0.69-10.el7.noarch                                             9/21
  Installing : geronimo-jta-1.1.1-17.el7.noarch                                                   10/21
  Installing : apache-commons-dbcp-1.4-17.el7.noarch                                              11/21
  Installing : tomcat-el-2.2-api-7.0.69-10.el7.noarch                                             12/21
  Installing : apache-commons-daemon-1.0.13-6.el7.x86_64                                          13/21
  Installing : 1:ecj-4.2.1-8.el7.x86_64                                                           14/21
  Installing : tomcat-lib-7.0.69-10.el7.noarch                                                    15/21
  Installing : javamail-1.4.6-8.el7.noarch                                                        16/21
  Installing : log4j-1.2.17-15.el7.noarch                                                         17/21
  Installing : apache-commons-logging-1.1.2-7.el7.noarch                                          18/21
  Installing : avalon-logkit-2.1-14.el7.noarch                                                    19/21
  Installing : avalon-framework-4.3-10.el7.noarch                                                 20/21
  Installing : tomcat-7.0.69-10.el7.noarch                                                        21/21
  Verifying  : xml-commons-apis-1.4.01-16.el7.noarch                                               1/21
  Verifying  : tomcat-jsp-2.2-api-7.0.69-10.el7.noarch                                             2/21
  Verifying  : apache-commons-logging-1.1.2-7.el7.noarch                                           3/21
  Verifying  : geronimo-jms-1.1.1-19.el7.noarch                                                    4/21
  Verifying  : tomcat-servlet-3.0-api-7.0.69-10.el7.noarch                                         5/21
  Verifying  : tomcat-lib-7.0.69-10.el7.noarch                                                     6/21
  Verifying  : javamail-1.4.6-8.el7.noarch                                                         7/21
  Verifying  : avalon-logkit-2.1-14.el7.noarch                                                     8/21
  Verifying  : avalon-framework-4.3-10.el7.noarch                                                  9/21
  Verifying  : apache-commons-pool-1.6-9.el7.noarch                                               10/21
  Verifying  : 1:ecj-4.2.1-8.el7.x86_64                                                           11/21
  Verifying  : apache-commons-daemon-1.0.13-6.el7.x86_64                                          12/21
  Verifying  : apache-commons-dbcp-1.4-17.el7.noarch                                              13/21
  Verifying  : tomcat-el-2.2-api-7.0.69-10.el7.noarch                                             14/21
  Verifying  : tomcat-7.0.69-10.el7.noarch                                                        15/21
  Verifying  : xalan-j2-2.7.1-23.el7.noarch                                                       16/21
  Verifying  : geronimo-jta-1.1.1-17.el7.noarch                                                   17/21
  Verifying  : apache-commons-collections-3.2.1-22.el7_2.noarch                                   18/21
  Verifying  : log4j-1.2.17-15.el7.noarch                                                         19/21
  Verifying  : xerces-j2-2.11.0-17.el7_0.noarch                                                   20/21
  Verifying  : xml-commons-resolver-1.2-15.el7.noarch                                             21/21

Installed:
  tomcat.noarch 0:7.0.69-10.el7                                                           

Dependency Installed:
  apache-commons-collections.noarch 0:3.2.1-22.el7_2    apache-commons-daemon.x86_64 0:1.0.13-6.el7
  apache-commons-dbcp.noarch 0:1.4-17.el7               apache-commons-logging.noarch 0:1.1.2-7.el7
  apache-commons-pool.noarch 0:1.6-9.el7                avalon-framework.noarch 0:4.3-10.el7
  avalon-logkit.noarch 0:2.1-14.el7                     ecj.x86_64 1:4.2.1-8.el7           
  geronimo-jms.noarch 0:1.1.1-19.el7                    geronimo-jta.noarch 0:1.1.1-17.el7 
  javamail.noarch 0:1.4.6-8.el7                         log4j.noarch 0:1.2.17-15.el7       
  tomcat-el-2.2-api.noarch 0:7.0.69-10.el7              tomcat-jsp-2.2-api.noarch 0:7.0.69-10.el7
  tomcat-lib.noarch 0:7.0.69-10.el7                     tomcat-servlet-3.0-api.noarch 0:7.0.69-10.el7
  xalan-j2.noarch 0:2.7.1-23.el7                        xerces-j2.noarch 0:2.11.0-17.el7_0 
  xml-commons-apis.noarch 0:1.4.01-16.el7               xml-commons-resolver.noarch 0:1.2-15.el7

Complete!

[root@was01 yum.repos.d]#
[root@was01 yum.repos.d]# yum -y --disablerepo=\* --enablerepo=c7-media install tomcat-webapps
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * c7-media:
Resolving Dependencies
--> Running transaction check
---> Package tomcat-webapps.noarch 0:7.0.69-10.el7 will be installed
--> Processing Dependency: jakarta-taglibs-standard >= 1.1 for package: tomcat-webapps-7.0.69-10.el7.noarch
--> Running transaction check
---> Package jakarta-taglibs-standard.noarch 0:1.1.2-14.el7_1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================
 Package                            Arch             Version                   Repository          Size
========================================================================================================
Installing:
 tomcat-webapps                     noarch           7.0.69-10.el7             c7-media           357 k
Installing for dependencies:
 jakarta-taglibs-standard           noarch           1.1.2-14.el7_1            c7-media           303 k

Transaction Summary
========================================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 660 k
Installed size: 1.5 M
Downloading packages:
--------------------------------------------------------------------------------------------------------
Total                                                                    15 MB/s | 660 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : jakarta-taglibs-standard-1.1.2-14.el7_1.noarch                                       1/2
  Installing : tomcat-webapps-7.0.69-10.el7.noarch                                                  2/2
  Verifying  : tomcat-webapps-7.0.69-10.el7.noarch                                                  1/2
  Verifying  : jakarta-taglibs-standard-1.1.2-14.el7_1.noarch                                       2/2

Installed:
  tomcat-webapps.noarch 0:7.0.69-10.el7                                                   

Dependency Installed:
  jakarta-taglibs-standard.noarch 0:1.1.2-14.el7_1                                         

Complete!
[root@was01 yum.repos.d]# firewall-cmd --permanent --zone=public --add-port=8080/tcp
success
[root@was01 yum.repos.d]# firewall-cmd --permanent --zone=public --add-port=8009/tcp
success
[root@was01 yum.repos.d]# firewall-cmd --reload
success
[root@was01 yum.repos.d]#

Apache Tomcat의 홈 디렉터리는 아래와 같습니다.

/usr/share/tomcat

아래와 같은 명령을 사용하여 Apache Tomcat 서비스를 실행시킵니다.

[root@[root@was01 yum.repos.d]# systemctl enable tomcat

Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.

[root@was01 yum.repos.d]# systemctl start tomcat
[root@was01 yum.repos.d]#
[root@was01 yum.repos.d]# systemctl status tomcat

● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since 토 2017-02-04 17:04:05 KST; 7s ago
 Main PID: 4272 (java)
   CGroup: /system.slice/tomcat.service
           └─4272 /usr/lib/jvm/jre/bin/java -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share...

Hint: Some lines were ellipsized, use -l to show in full.

[root@was01 yum.repos.d]#
[root@was01 yum.repos.d]# ps -ef | grep tomcat

tomcat    4272     1 11 17:04 ?        00:00:04 /usr/lib/jvm/jre/bin/java -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cachetomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start
root      4333  3424  0 17:04 pts/0    00:00:00 grep --color=auto tomcat

[root@was01 yum.repos.d]# 

2). HTTPD 서비스 시작 종료

systemctl [ start | stop ] tomcat6

3). 시스템 부팅시 HTTPD 서비스 자동 시작

systemctl [ enable | disable ] tomcat6

4). Tomcat 서비스 확인

호스트 운영체제(여러분들의 윈도우 운영체제)에 있는 웹브라우저를 사용하여 Tomcat 서버 접속 테스트를 합니다.





■ Apache HTTPD와 Tomcat 연동

이 게시물에 첨부되어 있는 [ mod_jk.so.Z ] 파일을 내려받아 HTTPD와 Tomcat 서버 간 연동을 위해 사용합니다. 만약 mod_jk 관련 소스파일을 받길 원한다면 http://tomcat.apache.org/download-connectors.cgi 웹사이트를 참조하세요.

mod_jk.so.Z 파일을 VMware Workstation의 드래그 앤 드롭 기능을 사용하여 WEB01 가상머신의 /root 디렉터리에 복사합니다. CentOS 7.3 바탕화면에 있는 아래와 같은 아이콘을 더블 클릭하여 파일 관리자를 열고 그 안으로 파일을 끌어넣어 복사하면 됩니다.


그다음 아래와 같은 명령을 실행하여 mod_jk.so 파일을 HTTPD의 모듈 디렉터리로 이동시킵니다.

[root@web01 ~]# ls

anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Music     Public     Videos
Desktop          Downloads  mod_jk.so.Z           Pictures  Templates

[root@web01 ~]# uncompress mod_jk.so.Z
[root@web01 ~]#
[root@web01 ~]# ls

anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Music     Public     Videos
Desktop          Downloads  mod_jk.so             Pictures  Templates

[root@web01 ~]#
[root@web01 ~]# mv mod_jk.so /usr/lib64/httpd/modules/
[root@web01 ~]#

그리고 톰켓(Tomcat)과 연동이 가능하게 mod_jk.so 모듈을 사용할 수 있도록 httpd 서비스에 대한 구성 파일을 수정 또는 생성합니다.

[root@web01 ~]# cd /etc/httpd/
[root@web01 httpd]# ls

conf  conf.d  conf.modules.d  logs  modules  run

[root@web01 httpd]# cd conf.modules.d/
[root@web01 conf.modules.d]# ls

00-base.conf  00-lua.conf  00-proxy.conf    01-cgi.conf
00-dav.conf   00-mpm.conf  00-systemd.conf

[root@web01 conf.modules.d]#
[root@web01 conf.modules.d]# vi 00-modjk.conf

LoadModule jk_module modules/mod_jk.so          <== 내용 입력

[root@web01 conf.modules.d]#
[root@web01 conf.modules.d]# cd ../conf.d/
[root@web01 conf.d]#
[root@web01 conf.d]# vi mod_jk.conf

JkWorkersFile /etc/httpd/conf/workers.properties   <== 내용 입력
JkShmFile /var/run/httpd/mod_jk.shm                <==
JkLogFile /var/log/httpd/mod_jk.log                  <==
JkLogLevel info                                         <==

[root@web01 conf.d]# cd ../conf
[root@web01 conf]#
[root@web01 conf]# vi workers.properties

worker.list=worker1                                      <== 내용 입력
worker.worker1.type=ajp13                              <==
worker.worker1.host=192.168.80.11                     <==
worker.worker1.port=8009                   

[root@web01 conf]#
[root@web01 conf]# vi httpd.conf

<VirtualHost *:80>                                        <== 내용 추가
    JkMount /* worker1                                  <==
</VirtualHost>                                            <==

[root@web01 conf]#
[root@web01 conf]# apachectl configtest         <== 구성 파일 체크

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe27:3f5. Set the 'ServerName' directive globally to suppress this message
Syntax OK

[root@web01 conf]#
[root@web01 conf]# chcon -R -t httpd_exec_t /usr/lib64/httpd/modules/mod_jk.so  <== Selinux 보안 컨텍스트 변경
[root@web01 conf]# 

아래와 같은 명령을 실행하여 HTTPD 서비스를 재실행합니다.

[root@web01 conf]# systemctl stop httpd
[root@web01 conf]# systemctl start httpd
[root@web01 conf]#
[root@web01 conf]# systemctl status httpd

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-02-04 15:32:56 EST; 2s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 4084 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 4098 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─4098 /usr/sbin/httpd -DFOREGROUND
           ├─4099 /usr/sbin/httpd -DFOREGROUND
           ├─4100 /usr/sbin/httpd -DFOREGROUND
           ├─4101 /usr/sbin/httpd -DFOREGROUND
           ├─4102 /usr/sbin/httpd -DFOREGROUND
           └─4103 /usr/sbin/httpd -DFOREGROUND

[root@web01 ~]# 

httpd 서비스 재실행 후 호스트 운영체제(여러분들의 윈도우 운영체제)에 있는 웹브라우저를 사용하여 웹서버(192.168.80.10)로 접속 테스트를 합니다. 그러면 아래와 같이 Tomcat 서비스를 의미하는 고양이 그림이 나타날 것입니다.


/etc/httpd/conf/httpd.conf 파일에 추가한 아래 내용을 변경하면 특정 파일 요청에 대해서 WAS 서버로 처리 요청할 수도 있습니다.

<VirtualHost *:80>
    JkMount /*.jsp worker1
    JkMount /*.do worker1
</VirtualHost>

여기까지 Apache HTTPD와 Tomcat을 설치하는 방법에 대해 알아보았습니다. 이것은 이전에 VMware Workstation 입문편과 응용편에서 다루었었습니다.

다음 게시물에서 데이터베이스 설치 (MariaDB) 및 JSP 파일을 사용하여 데이터베이스에 접근하는 방법에 대해 알아보도록 하겠습니다.



No comments:

Post a Comment