• 워드프레스 → 라이믹스 블로그 이전 완료 일주일 동안 열지 않기
  • 목록
  • 아래로
  • 위로
  • 검색

Apache Ubuntu에서 Apache2 설치 및 Tomcat 연동

키큰난쟁이 키큰난쟁이
51 0 0

아파치.jpg


 

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과 연동하기 위한 기본적인 준비과정입니다.

 


 

Tomcat 설치 및 설정

 

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

 

Tomcat 8.5 실행

#설치된 톰캣 위치
cd apache-tomcat-8.5.69/bin/
./startup.sh

 

Tomcat 8.5 이 실행 중인지 확인

ps -efc | grep tomcat

 ↑ Tomcat을 실행하고 실행 중인지 확인하는 것은 Apache2와의 연동을 위한 기본적인 준비과정입니다.

 


 

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

 


 

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 연결되었는지 확인

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

 


 

신고공유스크랩

댓글 0

댓글 쓰기
에디터 모드

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?

공유

퍼머링크