Ubuntu에서 Apache2 설치 및 Tomcat 연동

2024. 9. 20. 10:46·서버/Web Server
728x90
반응형


1. Apache2 설치 및 설정

  • Apache2 설치하기
sudo apt-get install apache2
  • Apache2 실행 중인지 확인
sudo systemctl status apache2
  • Apache2가 실행 중이 아니라면 아래 명령어로 실행
sudo systemctl start apache2
  • Apache2가 부팅 시 자동 실행되도록 설정
sudo systemctl enable apache2

Apache2는 HTTP 웹 서버로, 클라이언트로부터 요청을 받아 해당하는 웹 페이지를 전달하는 역할을 합니다. 따라서 Apache2를 설치하고 실행하는 것은 Tomcat과 연동하기 위한 기본적인 준비과정입니다.


2. Tomcat 설치 및 설정

Tomcat은 Java Servlet 및 Java Server Pages와 같은 Java EE (Enterprise Edition) 기능을 제공하는 Java 웹 애플리케이션 서버입니다. Tomcat을 설치하고 압축을 해제하는 것은 Apache2와의 연동을 위한 기본적인 준비과정입니다.

  • Tomcat 8.5 다운로드
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.86/bin/apache-tomcat-8.5.86.tar.gz
  • Tomcat 8.5 압축 해제
tar -zxvf apache-tomcat-8.5.69.tar.gz
  • Tomcat 8.5 실행
#설치된 톰캣 위치
cd apache-tomcat-8.5.69/bin/
./startup.sh
  • Tomcat 8.5 이 실행 중인지 확인
ps -efc | grep tomcat

3. mod_jk 설치 및 설정

  • mod_jk 설치
sudo apt-get install libapache2-mod-jk
  • mod_jk workers.properties 파일 수정
sudo vi /etc/libapache2-mod-jk/workers.properties
  • workers.properties 아래 내용 추가
worker.list=worker1 [woker(톰캣) 인스턴스]

workers.java_home=[JDK가 설치된 경로]

worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
  • WAS(톰캣) 여러 개 일 경우
worker.list=worker1,worker2 [woker(톰캣) 인스턴스]

workers.java_home=[JDK가 설치된 경로]

worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009 [WAS(톰캣) Server.xml 설정 할 AJP 포트] # 포트 중복 안되도록 주의

worker.worker2.type=ajp13
worker.worker2.host=localhost
worker.worker2.port=8010 [WAS(톰캣) Server.xml 설정 할 AJP 포트] # 포트 중복 안되도록 주의
  • Apache 설정파일 수정
<VirtualHost *:80>
        ServerName [도메인 주소] # ex) naver.com
        ServerAlias [서브 도메인] # ex) blog.naver.com news.naver.com
        DocumentRoot [DocumentRoot 디렉토리 설정]
        JkMount /* [workers.properties 지정한 woker(톰캣) 인스턴스 명] ex) worker1

        # 아래 내용은 http -> hhtps 리다이렉트 설정
        <IfModule mod_rewrite.c>
                RewriteEngine On
                RewriteCond %{HTTPS} off
                RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
        </IfModule>

        # 아파치 에러 로그 파일 설정 (필자는 보통 도메인명으로 설정)
        ErrorLog ${APACHE_LOG_DIR}/도메인명-error.log # ex) www.naver.com-error.log
        CustomLog ${APACHE_LOG_DIR}/도메인명-access.log combined # ex) www.naver.com-access.log
</VirtualHost>
<VirtualHost *:443>
        ServerName [도메인 주소] # ex) naver.com
        ServerAlias [서브 도메인] # ex) blog.naver.com news.naver.com
        DocumentRoot [DocumentRoot 디렉토리 설정]
        JkMount /* [workers.properties 지정한 woker(톰캣) 인스턴스 명] ex) worker1

        # www 강제로 붙이기
        <IfModule mod_rewrite.c>
                RewriteEngine On
                RewriteCond %{HTTP_HOST} !^www\. [NC]
                RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
        </IfModule>

        # 아파치 에러 로그 파일 설정 (필자는 보통 도메인명으로 설정)
        ErrorLog ${APACHE_LOG_DIR}/도메인명-error.log # ex) www.naver.com-error.log
        CustomLog ${APACHE_LOG_DIR}/도메인명-access.log combined # ex) www.naver.com-access.log

        # 아래 내용은 SSL 적용 필자는 무료 SSL(letsencrypt) 사용
        SSLEngine on
        SSLCertificateFile "/etc/letsencrypt/live/도메인주소/cert.pem"
        SSLCertificateKeyFile "/etc/letsencrypt/live/도메인주소/privkey.pem"
        SSLCertificateChainFile "/etc/letsencrypt/live/도메인주소/chain.pem"
</VirtualHost>
  • 강제로 https로 접속 설정 방법
<IfModule mod_rewrite.c>
RewriteEngine on
 
RewriteRule ^ - [E=protossl]
RewriteCond %{HTTPS} on
RewriteRule ^ - [E=protossl:s]
 
# https 강제이동.
# RewriteCond %{HTTPS} !=on
# RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
 
# www 강제로 붙이기.
# RewriteCond %{HTTP_HOST} .
# RewriteCond %{HTTP_HOST} !^www\. [NC]
# RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
 
# www 가 붙어있으면 떼기.
# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
# RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
 
</IfModule>
  • Apache2 재시작
sudo systemctl restart apache2

4. mod_jk와 톰캣 연동

  • 설치된 Tomcat conf 디렉토리 server.xml 수정
#설치된 톰캣 위치
sudo vi apache-tomcat-8.5.69/conf/server.xml
#기존 주석 처리 되어 있던 아래 내용을 오픈 합니다.
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector protocol="AJP/1.3"
               address="0.0.0.0"
               port="8009"
               redirectPort="8443"
               secretRequired = "false"
               />
  • 설치된 Tomcat 재시작
cd apache-tomcat-8.5.69/bin/
./stop.sh

# 조금 기다린 후
./startup.sh
  • Tomcat 연결되었는지 확인
    1. 웹 브라우저에서 ServerName주소[예) http://naver.com/ 또는 localhost로 지정했다면 http://localhost/]를 열어본다. Tomcat의 인덱스 페이지가 보인다면 mod_jk가 제대로 연동된 것이다.
    2. http에서 https 접속 설정은 해놨으면 http로 접속해도 https로 접속이 됩니다.

728x90
반응형

'서버 > Web Server' 카테고리의 다른 글

Redhat 계열 Linux에 WebtoB 5 설치  (0) 2024.09.17
'서버/Web Server' 카테고리의 다른 글
  • Redhat 계열 Linux에 WebtoB 5 설치
키큰난쟁이
키큰난쟁이
개발 블로그
    반응형
    250x250
  • 키큰난쟁이
    키큰난쟁이의 놀이터
    키큰난쟁이
  • 전체
    오늘
    어제
    • 분류 전체보기 (38)
      • AI (1)
        • AI 응용 (1)
      • 프로그래밍 언어 (5)
        • Java (3)
        • PHP (1)
        • JavaScript (1)
      • 프레임워크 (3)
        • Spring (3)
      • 서버 (8)
        • Web Server (2)
        • WAS (2)
        • Hypervisor (4)
      • 데이터베이스 (5)
        • MySQL•MariaDB (2)
        • Oracle (1)
        • Cubrid (2)
      • 운영체제 (4)
        • Linux (4)
      • 클라우드 (1)
        • Ncloud (1)
      • 데브옵스 (7)
        • VCS (2)
        • CICD (3)
        • Docker (2)
      • 지식 (2)
        • Web (2)
      • 기타 (2)
        • 일상 (2)
  • 블로그 메뉴

    • 일상
  • 링크

    • Instagram
    • github
  • 공지사항

    • 라이믹스 → 티스토리 이사
  • 인기 글

  • 태그

    마리아디비
    mariadb
    GitHub
    CI/CD
    우분투
    jenkins
    devops
    애플실리콘
    java
    db
    프록시모스
    젠킨스
    PROXMOX
    도커
    DBMS
    자바
    깃허브
    docker
    리눅스
    Apple Silicon
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
키큰난쟁이
Ubuntu에서 Apache2 설치 및 Tomcat 연동
상단으로

티스토리툴바