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 연결되었는지 확인
- 웹 브라우저에서 ServerName주소[예) http://naver.com/ 또는 localhost로 지정했다면 http://localhost/]를 열어본다. Tomcat의 인덱스 페이지가 보인다면 mod_jk가 제대로 연동된 것이다.
- http에서 https 접속 설정은 해놨으면 http로 접속해도 https로 접속이 됩니다.
728x90
반응형
'서버 > Web Server' 카테고리의 다른 글
Redhat 계열 Linux에 WebtoB 5 설치 (0) | 2024.09.17 |
---|