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:	jammy1. 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.listcurl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -apt updateNginx 패키지 설치(최신 안정화 버전)
apt install -y nginxnginx -vsystemctl --now enable nginxcurl -I localhost2. Zulu OpenJDK(java) 설치
Zulu OpenJDK를 설치합니다.
Zulu OpenJDK(java) repository 등록
apt-key adv \
  --keyserver hkp://keyserver.ubuntu.com:80 \
  --recv-keys 0xB1998361219BD9C9curl -sO https://cdn.azul.com/zulu/bin/zulu-repo_1.0.0-3_all.debapt-get install -y ./zulu-repo_1.0.0-3_all.debapt-get updateapt-cache search zuluZulu OpenJDK(java) 패키지 설치((openjdk 17 LTS 버전)
sudo apt-get install -y zulu17-jdkjava -versionJDK(java) 환경변수 등록
vim /etc/profileexport JAVA_HOME=/usr/lib/jvm/zulu17
export PATH="$PATH:$JAVA_HOME/bin"source /etc/profile3. Tomcat 설치
Tomcat을 설치합니다.
작업 디렉터리 생성
mkdir -pv /apps/tomcatTomcat 사용자 및 그룹 생성
groupadd tomcatuseradd -s /bin/false -g tomcat -d /apps/tomcat tomcatTomcat 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.gztar xfz apache-tomcat-10.1.2.tar.gz -C /apps/tomcat --strip-components=1chown -R tomcat: /apps/tomcatchmod +x /apps/tomcat/bin/*.shTomcat 버전 정보 확인
/apps/tomcat/bin/version.shsystemd 서비스 파일 생성
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.targetsystemctl daemon-reloadsystemctl --now enable tomcatsystemctl 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/defaultlocation / {
    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 | 
 
                  
                 
                  
                 
                  
                