개발도구/ETC

폐쇄망 리눅스 환경에서 자바 웹 프로젝트 구축하기

펌킨고구마 2024. 11. 7. 15:22
728x90
반응형

폐쇄망이 아니라면 npm이나 yum 등을 이용하여 설치가 가능하겠지만,

폐쇄망일 경우 파일을 구해서 넣은 후 진행해야 한다.

 

폐쇄망이라는 가정하에 파일들을 구하고 진행한다.

프로젝트 war파일은 내가 따로 준비했다는 가정하에 진행하기로 한다.

프로젝트 환경은

Java 1.8, MariaDB, Apache Tomcat 9, Apache 

로 준비할 것이다.

 

각각을 서비스로 등록하여, 서버가 재부팅 되었을때 다시 실행되도록 할 것이다.

(굳이 이 부분이 필요없으면 각각의 서비스 등록하는 부분은 제외해도 된다)

 

1. 필요한 파일 준비 (인터넷 가능 환경에서 다운로드 하여 준비)

- jdk-8u371-linux-x64.tar.gz (https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html)
- mariadb-10.11.x-linux-x86_64.tar.gz (https://mariadb.org/download/)
- apache-tomcat-9.0.x.tar.gz (https://tomcat.apache.org/download-90.cgi)
- httpd-2.4.x.tar.gz (https://httpd.apache.org/download.cgi)
- apr-1.7.x.tar.gz (https://apr.apache.org/download.cgi)
- apr-util-1.6.x.tar.gz (https://apr.apache.org/download.cgi)
- pcre-8.x.tar.gz (https://sourceforge.net/projects/pcre/files/pcre/)

 

 

2. JAVA 설치

# 1. 압축 해제
tar xvfz jdk-8u*-linux-x64.tar.gz
mv jdk1.8.0_* /usr/local/java8

# 2. 환경변수 설정
echo "export JAVA_HOME=/usr/local/java8" >> /etc/profile
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile
source /etc/profile

# 3. 설치 확인
java -version

 

 

3. Apache 설치 준비 (의존성 라이브러리 설치)

# APR 설치
tar xvfz apr-1.7.x.tar.gz
cd apr-1.7.x
./configure --prefix=/usr/local/apr
make
make install

# APR-util 설치
tar xvfz apr-util-1.6.x.tar.gz
cd apr-util-1.6.x
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install

# PCRE 설치
tar xvfz pcre-8.x.tar.gz
cd pcre-8.x
./configure --prefix=/usr/local/pcre
make
make install

 

4. Apache 설치

tar xvfz httpd-2.4.x.tar.gz
cd httpd-2.4.x

./configure --prefix=/usr/local/apache2 \
    --with-apr=/usr/local/apr \
    --with-apr-util=/usr/local/apr-util \
    --with-pcre=/usr/local/pcre \
    --enable-module=so \
    --enable-mods-shared=all \
    --enable-proxy \
    --enable-proxy-http \
    --enable-proxy-ajp

make
make install

 

5. Apache 서비스 생성

vi /etc/systemd/system/apache.service

[Unit]
Description=Apache HTTP Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl start
ExecStop=/usr/local/apache2/bin/apachectl stop
ExecReload=/usr/local/apache2/bin/apachectl graceful
PrivateTmp=true
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

[Install]
WantedBy=multi-user.target

 

 

6. Apache - Tomcat 연동 설정

vi /usr/local/apache2/conf/httpd.conf

# 필요한 모듈 로드
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule rewrite_module modules/mod_rewrite.so

# VirtualHost 설정
<VirtualHost *:80>
    ServerName your-domain.com
    ServerAdmin admin@your-domain.com
    DocumentRoot "/usr/local/apache2/htdocs"

    # Tomcat으로 프록시 설정 (AJP 방식)
    ProxyPass /your-app ajp://localhost:8009/your-app
    ProxyPassReverse /your-app ajp://localhost:8009/your-app

    # 또는 HTTP 방식으로 설정할 경우
    #ProxyPass /your-app http://localhost:8080/your-app
    #ProxyPassReverse /your-app http://localhost:8080/your-app

    ErrorLog "logs/your-domain-error.log"
    CustomLog "logs/your-domain-access.log" combined
</VirtualHost>

 

 

7. MariaDB 설치

# 압축 해제 및 이동
tar xvf mariadb-*.tar.gz
mv mariadb-* /usr/local/mariadb

# 사용자 생성
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

# 권한 설정
cd /usr/local/mariadb
chown -R mysql:mysql .

# 초기화
./scripts/mysql_install_db --user=mysql

 

8. MariaDB 서비스 생성

vi /etc/systemd/system/mariadb.service

[Unit]
Description=MariaDB Database Server
After=network.target

[Service]
Type=simple
User=mysql
Group=mysql
ExecStart=/usr/local/mariadb/bin/mysqld_safe --datadir=/usr/local/mariadb/data
ExecStop=/usr/local/mariadb/bin/mysqladmin shutdown
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

 

 

9. Tomcat 설치

# 압축 해제 및 이동
tar xvf apache-tomcat-9.*.tar.gz
mv apache-tomcat-9.* /usr/local/tomcat9

# 환경변수 설정
echo "export CATALINA_HOME=/usr/local/tomcat9" >> /etc/profile
source /etc/profile

 

10. Tomcat 서비스 생성

vi /etc/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat 9
After=network.target mariadb.service

[Service]
Type=forking
Environment=JAVA_HOME=/usr/local/java8
Environment=CATALINA_HOME=/usr/local/tomcat9
Environment=CATALINA_BASE=/usr/local/tomcat9
Environment=CATALINA_PID=/usr/local/tomcat9/temp/tomcat.pid

ExecStart=/usr/local/tomcat9/bin/startup.sh
ExecStop=/usr/local/tomcat9/bin/shutdown.sh

User=root
Group=root
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

 

11. war 프로젝트 폴더 풀기

mkdir /usr/local/tomcat9/webapps/your-app
mv ./your-app.war /usr/local/tomcat9/webapps/your-app
cd /usr/local/tomcat9/webapps/your-app
jar -xvf your-app.war

 

 

12. 톰캣 설정 변경 (server.xml)

 

 

13. 톰캣 실행으로 제대로 되는지 확인

# Tomcat 시작
systemctl start tomcat

# 로그 확인
tail -f /usr/local/tomcat9/logs/catalina.out

 

14. 모든 서비스 등록 및 시작

# 서비스 파일 권한 설정
chmod 755 /etc/systemd/system/mariadb.service
chmod 755 /etc/systemd/system/tomcat.service
chmod 755 /etc/systemd/system/apache.service

# systemd 데몬 리로드
systemctl daemon-reload

# 서비스 자동 시작 활성화
systemctl enable mariadb
systemctl enable tomcat
systemctl enable apache

# 서비스 시작
systemctl start mariadb
systemctl start tomcat
systemctl start apache

# 상태 확인
systemctl status mariadb
systemctl status tomcat
systemctl status apache

 

728x90
반응형
LIST