Ubuntu에서 Nginx, Zulu OpenJDK, Tomcat을 설치하고 연동하여 간단한 테스트 페이지를 실행하는 방법
테스트 환경
- 운영체제 버전 정보
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy
1. Nginx 설치
2. JDK(JAVA) 설치
3. Tomcat 설치
4. Nginx와 Tomcat 연동 설정
1. Nginx 설치
Nginx를 설치합니다.
Nginx repository 등록
echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
apt update
Nginx 패키지 설치(최신 안정화 버전)
apt install -y nginx
nginx -v
systemctl --now enable nginx
curl -I localhost
2. Zulu OpenJDK(java) 설치
Zulu OpenJDK를 설치합니다.
Zulu OpenJDK(java) repository 등록
apt-key adv \
--keyserver hkp://keyserver.ubuntu.com:80 \
--recv-keys 0xB1998361219BD9C9
curl -sO https://cdn.azul.com/zulu/bin/zulu-repo_1.0.0-3_all.deb
apt-get install -y ./zulu-repo_1.0.0-3_all.deb
apt-get update
apt-cache search zulu
Zulu OpenJDK(java) 패키지 설치((openjdk 17 LTS 버전)
sudo apt-get install -y zulu17-jdk
java -version
JDK(java) 환경변수 등록
vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/zulu17
export PATH="$PATH:$JAVA_HOME/bin"
source /etc/profile
3. Tomcat 설치
Tomcat을 설치합니다.
작업 디렉터리 생성
mkdir -pv /apps/tomcat
Tomcat 사용자 및 그룹 생성
groupadd tomcat
useradd -s /bin/false -g tomcat -d /apps/tomcat tomcat
Tomcat 10 버전 다운로드
- Download URL : https://downloads.apache.org/tomcat/tomcat-10/v10.1.2/bin/
cd /usr/local/src/
Tomcat(apache tomcat 10) 내려받기
wget -q https://downloads.apache.org/tomcat/tomcat-10/v10.1.2/bin/apache-tomcat-10.1.2.tar.gz
tar xfz apache-tomcat-10.1.2.tar.gz -C /apps/tomcat --strip-components=1
chown -R tomcat: /apps/tomcat
chmod +x /apps/tomcat/bin/*.sh
Tomcat 버전 정보 확인
/apps/tomcat/bin/version.sh
systemd 서비스 파일 생성
vim /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat webs servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
RestartSec=10
Restart=always
Environment="JAVA_HOME=/usr/lib/jvm/zulu17"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
Environment="CATALINA_BASE=/apps/tomcat"
Environment="CATALINA_HOME=/apps/tomcat"
Environment="CATALINA_PID=/apps/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/apps/tomcat/bin/startup.sh
ExecStop=/apps/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl --now enable tomcat
systemctl status tomcat --no-pager -l
브라우저에서 테스트
http://192.168.0.61:8080
4. Nginx와 Tomcat 연동 설정
Nginx와 Tomcat을 연동하려면 Nginx 구성 파일을 수정해야 합니다.
Nginx 구성 파일 수정
upstream 설정
upstream tomcat {
ip_hash;
server 127.0.0.1:8080 max_fails=10 fail_timeout=1s;
keepalive 100;
}
server {
listen 80;
server_name localhost;
root /apps/tomcat/webapps/ROOT;
index index.jsp;
charset utf-8;
location / {
proxy_pass http://tomcat;
}
...
}
cat /etc/nginx/conf.d/default.conf
---
Nginx가 Tomcat을 프록시 서버로 사용하도록 설정
sudo vim /etc/nginx/sites-available/default
location / {
proxy_pass http://localhost:8080; # Tomcat이 기본적으로 8080 포트에서 실행됨
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Tomcat 설정
sudo vim /etc/tomcat9/Catalina/localhost/ROOT.xml
<Context path="" docBase="/path/to/your/webapp" />
여기서 /path/to/your/webapp를 실제 웹 애플리케이션의 경로로 대체합니다.
---
5. 테스트 페이지
간단한 테스트 페이지를 생성합니다
index.jsp 편집
vim index.jsp
<%@ page
language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
%><?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head><title>TOMCAT devsp3(Instance1) - TOMCAT TEST</title></head>
<body><pre>
운영체제: <%=System.getProperty("os.arch")%>
데이터모델: <%=System.getProperty("sun.arch.data.model")%>
클래스경로: <%=System.getProperty("java.class.path",".")%>
라이브러리경로: <%=System.getProperty("java.library.path", ".")%>
파라메터: <%=request.getParameter("param")%> ('한글'이라고 표기되어야 함)
파일인코딩: <%=System.getProperty("file.encoding")%>
시스템캐릭터셋: <%=java.nio.charset.Charset.defaultCharset().name()%>
페이지캐릭터셋: <%=response.getCharacterEncoding()%>
서블릿 경로: <%=application.getRealPath("")%>
</pre></body>
</html>
웹 브라우저에서 테스트
http://localhost
이제 웹 브라우저에서 서버의 IP 주소 또는 도메인을 입력하여 테스트 페이지를 확인할 수 있어야 합니다. Nginx를 통해 Tomcat으로 연결되는 웹 페이지를 볼 수 있어야 합니다.
이제 Nginx, Zulu OpenJDK, Tomcat을 설치하고 연동하여 간단한 테스트 페이지를 실행하는 방법을 완료했습니다. 필요에 따라 도메인 및 DNS 설정도 고려할 수 있습니다.
참고URL
- nginx tomcat 설치 및 연동 : https://scbyun.com/365
- nginx + tomcat(멀티 인스턴스) 설치 : https://scbyun.com/617
- CentOS 6.4 Linux + Apache + Apache Tomcat 연동 : https://scbyun.com/272
- azul docs : https://docs.azul.com/core/zulu-openjdk/install/debian
- Download Azul Zulu Builds of OpenJDK : https://www.azul.com/downloads/?package=jdk#download-openjdk
- Download the Red Hat build of OpenJDK : https://developers.redhat.com/products/openjdk/download
- Java Downloads(oracle) : https://www.oracle.com/java/technologies/downloads
'리눅스' 카테고리의 다른 글
tar 명령어 (0) | 2013.09.29 |
---|---|
crontab 명령어 (2) | 2013.09.29 |
wait 명령어 (0) | 2013.09.25 |
우분투에서 다중 Tomcat 인스턴스를 설정하는 방법(Multiple Tomcat Instances) (0) | 2013.09.24 |
Apache Portable Runtime(APR) 라이브러리 (0) | 2013.09.22 |