Today
-
Yesterday
-
Total
-
  • ubuntu 22 : apache 2 + tomcat 띄우기
    OS/Ubuntu 2023. 12. 10. 00:01

    🤨🔎

    Spring Boot 내장 톰캣을 사용해야 하기 때문에 tomcat 설치는 하지 않는다.

    apache2가 설치되어있고 https를 적용한 상태에서 진행


    본론



    도움 받은 블로그

     





    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 &


    외부 접속 확인!

    https://project.zhyun.kim



Designed by Tistory / Custom by 얼거스