안녕하세요. 주식회사 서버몬 입니다.
오늘은 아파치 톰캣에 대한 개념과 실습을 가져 보도록 하겠습니다.
아파치 톰캣이란?
톰캣(Tomcat)은 흔히 WAS(Web Application Service)라고 하며, 아파치 소프트웨어 재단(Apache Software Foundation)의 애플리케이션 서버로서, 자바 서블릿을 실행하고. JSP 가 포함된 웹페이지를 만들수 있도록 합니다.
톰캣과 웹서버를 연동하여 실행 할 수 있는 자바 환경을 제공하고, 관리도구틀 통해 설정을 변경 하거나.XML 형식의 파일을 편집하여 구성하는 방법 또한 지원합니다. 동적인 서비스의 연동 (데이터베이스) 등 유동성이 있는 서비스를 운영하기 위해 사용하지만 사용량이 많거나 요청하는 데이터가 많아지는 만큼 요청 속도가 느려질 수 있습니다.그러기에 대부분의 애플리케이션 개발 서버를 구축할 경우 WEB 과 WAS 서버를 연동하여 운영하는것이 일반적 입니다.
구축 테스트 환경 구축
[root@localhost ~]# cat /etc/rocky-release
Rocky Linux release 8.6 (Green Obsidian) (최신 OS 인 Rocky Linux 8을 이용하여 테스트 환경을 구축)
[root@localhost ~]# dnf update (개발 서버로의 이용을 위해 최신 패키지 업데이트 구성)
[root@localhost ~]# java -version (OS 에 기본 설치 되어 있는 JAVA 버전을 확인)
openjdk version "1.8.0_352"
OpenJDK Runtime Environment (build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)
JDK 버전 업데이트
성능 및 보안성 향상을 위해 JDK 버전을 업데이트 하도록 합니다.
[root@localhost ~]# dnf list java*
[root@localhost ~]# dnf install -y java-17-openjdk.x86_64 ( 최신 설치 가능한 버전인 17 버전을 설치합니다)
JAVA 버전 변경
Linux 는 JAVA 버전을 2개 이상 보유 할 수 있습니다. 다만 동시 운영은 불가능 한데요.
유동적으로 변경하기 위해 alternatives 기능을 사용하여 버전 스위칭을 진행합니다.
[root@localhost ~]# update-alternatives --config java
최신 설치 버전인 17을 선택하기 위해 2번을 선택후 엔터.
[root@localhost ~]# java -version (변경된 JAVA 버전을 확인)
openjdk version "17.0.5" 2022-10-18 LTS
OpenJDK Runtime Environment (Red_Hat-17.0.5.0.8-2.el8_6) (build 17.0.5+8-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-17.0.5.0.8-2.el8_6) (build 17.0.5+8-LTS, mixed mode, sharing)
계정생성
보안을 위해 Root 계정이 아닌 별도의 tomcat 운영 계정을 생성합니다.
[root@localhost ~]# groupadd tomcat
[root@localhost ~]# mkdir /opt/tomcat
[root@localhost ~]# useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
useradd: 경고: 홈디렉터리가 이미 있습니다. (정상 표기)
skel 디렉터리에서 파일을 복사하지 않습니다. (정상 표기)
[root@localhost ~]# cat /etc/passwd | grep tomcat (최종적으로 만들어진 계정 확인)
tomcat:x:1001:1001::/opt/tomcat:/bin/nologin
Tomcat 다운로드
공식 홈페이지 : https://tomcat.apache.org/download-10.cgi
위 링크를 통해 Tomcat 소스 파일을 다운로드 합니다.
현재 기준 10.0.27 버전이 최신 버전이고 Linux 계열에서의 사용을 위해 Tar.gz 형태의 파일을 다운로드 합니다.
[root@localhost ~]# wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz
[root@localhost ~]# ll | grep tomcat (받은 파일 확인)
-rw-r--r-- 1 root root 11984522 10월 3 11:53 apache-tomcat-10.0.27.tar.gz
root@localhost ~]# tar -zxvf apache-tomcat-10.0.27.tar.gz -C /opt/tomcat --strip-components=1 (파일 압축 해제)
[root@localhost tomcat]# ls /opt/tomcat/ (파일 정상인지 확인)
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs temp webapps work
Tomcat 권한 변경 및 설치
[root@localhost tomcat]# chown -R tomcat:tomcat /opt/tomcat ( 다운로드 받은 톰캣의 권한을 변경)
[root@localhost tomcat]# ls -al /opt/ | grep tomcat (변경 되었는지 확인)
drwxr-xr-x 9 tomcat tomcat 220 10월 24 02:23 tomcat
[root@localhost tomcat]# sh -c 'chmod +x /opt/tomcat/bin/*.sh' ( 톰캣 실행 스크립트에 권한 부여)
[root@localhost tomcat]# ls -al /opt/tomcat/bin | grep ".sh" (변경 되었는지 확인)
-rwxr-x--x 1 tomcat tomcat 24814 10월 3 10:18 catalina.sh
-rwxr-x--x 1 tomcat tomcat 1997 10월 3 10:18 ciphers.sh
-rwxr-x--x 1 tomcat tomcat 1922 10월 3 10:18 configtest.sh
-rwxr-x--x 1 tomcat tomcat 8836 10월 3 10:18 daemon.sh
-rwxr-x--x 1 tomcat tomcat 1965 10월 3 10:18 digest.sh
-rwxr-x--x 1 tomcat tomcat 3382 10월 3 10:18 makebase.sh
-rwxr-x--x 1 tomcat tomcat 1970 10월 3 10:18 migrate.sh
-rwxr-x--x 1 tomcat tomcat 3708 10월 3 10:18 setclasspath.sh
-rw-r----- 1 tomcat tomcat 2020 10월 3 10:18 shutdown.bat
-rwxr-x--x 1 tomcat tomcat 1902 10월 3 10:18 shutdown.sh
-rwxr-x--x 1 tomcat tomcat 1904 10월 3 10:18 startup.sh
-rwxr-x--x 1 tomcat tomcat 5540 10월 3 10:18 tool-wrapper.sh
-rwxr-x--x 1 tomcat tomcat 1908 10월 3 10:18 version.sh
[root@localhost tomcat]# /opt/tomcat/bin/startup.sh (톰캣 실행 스크립트 실행)
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@localhost tomcat]# tail -f /opt/tomcat/logs/catalina.out
24-Oct-2022 02:26:22.072 정보 [main] org.apache.catalina.startup.HostConfig.deployDirectory 웹 애플리케이션 디렉토리 [/opt/tomcat/webapps/ROOT]에 대한 배치가 [1,087] 밀리초에 완료되었습니다.
24-Oct-2022 02:26:22.072 정보 [main] org.apache.catalina.startup.HostConfig.deployDirectory 웹 애플리케이션 디렉토리 [/opt/tomcat/webapps/docs]을(를) 배치합니다.
24-Oct-2022 02:26:22.145 정보 [main] org.apache.catalina.startup.HostConfig.deployDirectory 웹 애플리케이션 디렉토리 [/opt/tomcat/webapps/docs]에 대한 배치가 [72] 밀리초에 완료되었습니다.
24-Oct-2022 02:26:22.145 정보 [main] org.apache.catalina.startup.HostConfig.deployDirectory 웹 애플리케이션 디렉토리 [/opt/tomcat/webapps/examples]을(를) 배치합니다.
24-Oct-2022 02:26:22.915 정보 [main] org.apache.catalina.startup.HostConfig.deployDirectory 웹 애플리케이션 디렉토리 [/opt/tomcat/webapps/examples]에 대한 배치가 [769] 밀리초에 완료되었습니다.
24-Oct-2022 02:26:22.915 정보 [main] org.apache.catalina.startup.HostConfig.deployDirectory 웹 애플리케이션 디렉토리 [/opt/tomcat/webapps/host-manager]을(를) 배치합니다.
24-Oct-2022 02:26:23.001 정보 [main] org.apache.catalina.startup.HostConfig.deployDirectory 웹 애플리케이션 디렉토리 [/opt/tomcat/webapps/host-manager]에 대한 배치가 [86] 밀리초에 완료되었습니다.
24-Oct-2022 02:26:23.001 정보 [main] org.apache.catalina.startup.HostConfig.deployDirectory 웹 애플리케이션 디렉토리 [/opt/tomcat/webapps/manager]을(를) 배치합니다.
24-Oct-2022 02:26:23.080 정보 [main] org.apache.catalina.startup.HostConfig.deployDirectory 웹 애플리케이션 디렉토리 [/opt/tomcat/webapps/manager]에 대한 배치가 [78] 밀리초에 완료되었습니다.
24-Oct-2022 02:26:23.119 정보 [main] org.apache.catalina.startup.Catalina.start 서버가 [2282] 밀리초 내에 시작되었습니다.
Tomcat 테스트 및 서비스 화
설치된 톰캣을 확인하기 위해 http://서버의 IP 주소:8080 형태로 웹페이지 접근
아래 사진처럼 톰캣화면이 나타나는것을 확인합니다.
Linux 시스템에 서비스 등록을 합니다.
[root@localhost tomcat]# vim /etc/systemd/system/tomcat.service
아래 내용 추가 후 저장
---------------------------------------------------------------------------------------------------------------------------
[Unit]
Description=Tomcat webs servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
---------------------------------------------------------------------------------------------------------------------------
[root@localhost tomcat]# systemctl daemon-reload (서비스 리로드)
[root@localhost tomcat]# systemctl restart tomcat.service (서비스 재시작)
[root@localhost tomcat]# systemctl status tomcat (서비스 상태 확인)
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2022-10-24 02:36:14 EDT; 4s ago
Process: 43270 ExecStop=/opt/tomcat/bin/shutdown.sh (code=exited, status=0/SUCCESS)
Process: 43300 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 43309 (java)
Tasks: 17 (limit: 10553)
Memory: 93.5M
CGroup: /system.slice/tomcat.service
└─43309 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Djava.security.egd=file:/dev/.>
10월 24 02:36:14 localhost.localdomain systemd[1]: tomcat.service: Succeeded.
10월 24 02:36:14 localhost.localdomain systemd[1]: Stopped Tomcat webs servlet container.
10월 24 02:36:14 localhost.localdomain systemd[1]: Starting Tomcat webs servlet container...
10월 24 02:36:14 localhost.localdomain systemd[1]: Started Tomcat webs servlet container
정상적으로 서비스 Load 된것을 확인 한다.
HPE, 레노버, 델 서버, 워크스테이션, 기업용 노트북 등 IT 제품은 서버몬에서 견적받아보세요~
제품에 대한 상담을 희망하시면, 02-2026-5062 or sales@servermon.co.kr로 문의 주세요.
서버몬에서 운영하는 IT 쇼핑몰을 구경하시려면, 하단의 로고를 클릭해주세요.
서버몬/서버몬기술지원/스위치/스위치 기술지원비(비용)/스위치 설치비/방화벽/방화벽 기술지원비(비용)/방화벽 설치비/랙/랙(RACK) 기술지원비(비용)/랙(RACK) 설치비/KVM/KVM 기술지원비(비용)/KVM 설치비/스토리지/스토리지 기술지원비(비용)/스토리지 설치비/스토리지 랙마운트비용/스토리지 장애조치비용/서버/서버 기술지원비(비용)/서버 설치비/서버 랙마운트비용/서버 장애조치비용/윈도우서버/윈도우즈 기술지원비(비용)/윈도우즈 설치비/리욱스/Linux/리눅스 기술지원비(비용)/리눅스 설치비/DB/데이터베이스/MySQL 기술지원비(비용)/MySQL 설치비/MSSQL 기술지원비(비용)/MSSQL 설치비/백업 기술지원비(비용)/HPE서버비용/HPE/DL20/DL20GEN10/ML30/ML30GEN10/ML360/ML350GEN10/DL360/DL360Gen10/DL380/DL380Gen10/LENOVO서버/레노보서버/델서버/델서버비용/DELLR540/DELLR750/HP서버/서버엔지니어/서버기술지원/서버디스크장애처리/방화벽/방화벽엔지니어/APC UPS/UPS/UPS설치/UPS기술지원/UPS납품/서버렉마운트/HPE Service Pack for Proliant/HPE SPP/SPP/Intelligent Provisioning/시놀로지나스/나스기술지원/SYNOLOGY/SYNOLOGY나스/시놀로지DS918/시놀로지하이퍼백업/HYPER BACKUP/시놀로지HyperBackup/시놀로지나스백업/서버백업/서버트러블슈팅/리눅스트러블슈팅/보안솔루션/시큐어디스크/인터넷디스크/이스트소프트/알약/카스퍼스키/ESTSOFT/V3/안랩/소포스/SOPHOS/카보나이트/더블테이크/이중화솔루션/HA솔루션/Windows서버설치/왼도우서버설치/윈도우서버2019/윈도우서버2016/MSSQL/MYSQL/디포그랙/DEFOG랙/디포그랙가격/EDFOG랙가격/RMS랙/서버납품/랙납품설치/랙설치/나스설치지원/스토리지납품설치/윈도우서버트러블슈팅/리눅스서버트러블슈팅/HPE서버펌웨어/HP서버펌웨어/HPE서버/FIRMWARE/DELL서버펌웨어/델서버펌웨어업데이트/레노보서버펌웨어/LENOVO펌웨어업데이트/HPE서버드라이버설치/HPE서버구매/DELL서버구매/LENOVO서버구매/보안솔루션구매/이중화솔루션구매/보안솔루션설치/이중화솔루션설치/HPE서버가격비교/DELL서버가격비교/LENOVO서버가격비교/HPE서버가격비교견적/DELL서버가격비교견적/LENOVO서버가격비교견적/HPE서버견적/DELL서버견적/LENOVO서버견적/HPE서버디스크교체/DELL서버디스크교체/LENOVO서버디스크교체/HPE서버RAID컨트롤러/HPE서버RAID컨트롤러/DELL서버RAID컨트롤러/LENOVO서버RAID컨트롤러/HP서버하드디스크/HPE서버하드디스크구매/DELL서버하드디스크구매/LENOVO서버하드디스크구매/HPE서버SAS하드디스크/DELL서버SAS하드디스크/LENONO서버SAS하드디스크/HPE서버메모리/DELL서버메모리/LENOVO서버메모리/HP서버메모리/HPE서버CPU/DELL서버CPU/LENOVO서버CPU/서버CPU/서버메모리/서버MEMORY/ECC메모리/서버용메모리/서버용하드디스크/서버용그래픽카드/쿼드로P400/QUADRO그래픽카드/QUADRO/우분투설치/서버보안/네트워크장비/네트워크스위치/L2스위치/L3스위치/OS설치/서버OS설치/리눅스서버설치/우분투설치/페도라설치/레드헷설치/RHEL설치/워크스테이션/서버/hp워크스테이션/서버컴퓨터/델워크스테이션/hp서버/미니서버랙/중고서버/hpz4/dell워크스테이션/서버pc/hpz4g4/중고워크스테이션/hpz440/레노버p620/서버용컴퓨터/델서버/레노버워크스테이션/hpz420/dell서버
'설치 및 기술 자료 > Linux' 카테고리의 다른 글
[Linux] Centos7 nfs 서버 마운트 , 데이터 동기화 (0) | 2022.11.24 |
---|---|
[Linux] SSH 보안설정 #3 (SSH 패스워드 정책, 타임 세션아웃) (0) | 2022.11.13 |
[Linux] SSH 보안설정 #2 (SSH 접속 경고메세지 설정) (0) | 2022.10.23 |
[Linux(MariaDB)] Mariabackup 유틸리티를 이용한 물리적 온라인 백업 (0) | 2022.10.11 |
[Linux] RedHat Linux 웹 콘솔 사용하기 (0) | 2022.10.04 |
댓글