-
ubuntu 22 : apache 2 + tomcat 띄우기OS/Ubuntu 2023. 12. 10. 00:01
🤨🔎
Spring Boot 내장 톰캣을 사용해야 하기 때문에 tomcat 설치는 하지 않는다.
apache2가 설치되어있고 https를 적용한 상태에서 진행
본론
- tomcat 실행을 위한 java 설치 └ docker 사용시 미해당
- apache에 tomcat 실행 설정
도움 받은 블로그
-
ubuntu java 설치
-
연동 관련 : apache2 proxy
-
windows jar 생성
-
서브도메인 보안 인증 추가 : certbot 이용
- 아파치 서브 도메인 설정 참고 0
- 아파치 서브 도메인 설정 참고 1
- 아파치 서브 도메인 설정 참고 2
- 아파치 서브 도메인 설정 참고 3
0. 도메인 계획
- zhyun.kim == www.zhyun.kim 개인 블로그 띄울 계획
- project.zhyun.kim 과제물 띄울 계획
고민 ❓🤨🔎 tomcat을 여러개 띄워야 하는데 도메인에 어떻게 연결할지 -> 1. 서브 도메인 설정 - 이게 될까..? project.zhyun.kim/과제-1/ project.zhyun.kim/과제-2/ project.zhyun.kim/과제-N/
-> 2. 서브 도메인 설정 - 이건 할 수 있을것 같다 ! project-1.zhyun.kim project-2.zhyun.kim project-N.zhyun.kim하지만 사용하고있는 도메인 호스팅 업체에서 무료로 제공되는 서브 도메인 수량이 2개밖에 안남았다. 하나 추가에 3300원인데 😬 비용을 아낄려면 1번으로 시도해야 할 것 같다. 이렇게 되면 프로젝트를 전부 수정해야하는 불쌍사가........ 어쩌면 의외로 간단히 풀릴지도 모르겠다.
이 부분은 조금 더 고민 필요
일단 project.* 하나만 진행 💨
1. 서브 도메인 https 등록하기 + certbot
발급된 인증서 목록 확인
certbot certificates
새로운 서브 도메인 ' project.zhyun.kim ' 추가
certbot --apache -d zhyun.kim -d www.zhyun.kim -d project.zhyun.kim
기한 만료전 인증서 자동 갱신이 제대로 설정되었는지를 테스트
certbot renew --dry-run
확인
certbot certificates
2. Apache2 서브도메인 띄우기
/etc/apache2/sites-available에 파일 생성 & 내용 작성
vi /etc/apache2/site-available/000-project.zhyun.kim.conf
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName project.zhyun.kim ServerAlias project.zhyun.kim DocumentRoot /프로젝트/저장/경로 <Directory /프로젝트/저장/경로/> Options FollowSymLinks MultiViews AllowOverride All require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/project-error.log CustomLog ${APACHE_LOG_DIR}/project-access.log combined Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/zhyun.kim/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/zhyun.kim/privkey.pem </VirtualHost> </IfModule>
/etc/apache2/sites-enable에 링크 추가
ln -s /etc/apache2/sites-available/000-project.zhyun.kim.conf /etc/apache2/sites-enable/000-project.zhyun.kim.conf
apache2 사이트 활성화 적용
a2ensite 000-project.zhyun.kim
apache2 설정 다시 읽기
systemctl reload apache2
3. spring boot Jar 생성 (windows)
Windows 운영체제에서 powerShell을 이용하여 작업 !
1. 프로젝트 폴더 위치로 이동 후 우클릭 - 터미널에서 열기
서버에서 톰캣을 띄워보는 것이 목적이기 때문에 기존에 작성했던 과제 하나를 아무거나 다운받아서 내용을 모두 제거하고 루트 경로 진입시 문자열 하나만 출력하도록 수정해주었다. db 연결등 라이브러리 모두 없애고 spring-web만 남겨둠
2. jdk가 설치되어있지 않다면 설치해야됨
https://www.oracle.com/kr/java/technologies/downloads/
3. ./gradlew build
./gradlew build
jar 생성 확인
jar 실행 확인
java -jar .\build\libs\app.jar
4. jar 파일 서버로 이동
서버에 프로젝트를 관리할 위치로 jar 파일을 복사한다.
fileZilla 를 이용하는 방법도 있고 terminal에서 명령어를 이용하는 방법도 있고 다양한 방법이 있는데 나는 에디트 플러스를 통해서 옮겼다. 그래서 과정을 적을것이 없기때문에 캡쳐본을 남김!
5. Java 설치
1. java 17 설치
apt update apt install openjdk-17-jdk
2. JAVA_HOME 설정
vi ~/.profile
# JAVA_HOME settings export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java)))) export PATH=$PATH:$JAVA_HOME/bin
source ~/.profile
확인
echo $JAVA_HOME
6. 아파치에서 톰캣 실행설정
apache proxy 실행 설정 적용
a2enmod proxy a2enmod proxy_http systemctl restart apache2
/etc/apache2/sites-available/해당도메인 파일 설정
000-project.zhyun.kim.conf 파일에 아래 내용 추가
ProxyVia On ProxyRequests Off ProxyPreserveHost on ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/
apache2 재실행
systemctl restart apache2
jar 파일 실행
실행 명령어 맨 마지막으로
&
를 붙여주면 백그라운드에서 실행된다.java -jar /var/www/html/project/app.jar &
외부 접속 확인!
'OS > Ubuntu' 카테고리의 다른 글
Ubuntu 22: Apache2 + Certbot 환경에서 Vault SSL 연결 (0) 2023.12.15 Docker : Spring Boot 프로젝트 이미지 생성 & 서버 실행 (0) 2023.12.10 ubuntu 22 : 🐳 + MySQL 8 + MariaDB 11 설치 시도 기록 (0) 2023.12.09 도커 Docker 🐳 (0) 2023.12.09 ubuntu 22 : MySQL 8 + MariaDB 10 설치 시도 기록 (0) 2023.12.09