이 글은 apache(=httpd)가 깔려 있다는 전제 하에 적은 글입니다.
사용한 OS 및 버전
- CentOS7 CentOS Linux release 7.9.2009 (Core)
- Apache 2.4
- openjdk version 1.8.0
- Tomcat 10.0
- Tomcat-connectors 1.2.48
방화벽 자동 실행 제거
방화벽 끄기
방화벽 상태 확인 - Active: inactive (dead) 확인# systemctl disable firewalld # systemctl stop firewalld # systemctl status firewalld
# vi /etc/sysconfig/selinux
SELINUX=enforing >> SELINUX=disabled로 변경
컴파일을 하기 위해 필요한 패키지 목룍
httpd-devel
gcc
gcc-c++
libtool설치예시
# yum -y install httpd-devel gcc gcc-c++ libtool
패키지 추천
vim
net-tools
리눅스 내에서 검색해보기
# yum search java-1.8.0-openjdk
자바 버전 1.8 (== 8버전) openjdk, openjdk-devel 설치
# yum -y install java-1.8.0-openjdk-src.x86_64 java-1.8.0-openjdk-devel
경로 알아보기
find [경로][표현식]
find == 찾으라는 명령어
/ == /(root)아래 파일 찾기 == 모든 파일 찾기랑 같은 뜻
-name == 이름으로 찾기# find / -name java
find / -name java == 이 서버의 java라고 이름 붙은 모든 파일 찾아라.
찾은 내용 중 경로/bin/~ 위치가 java 위치
/etc/profile에 경로 저장
# vi /etc/profile
들어가서 가장 밑 부분에 추가 후 저장
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64 PATH=$JAVA_HOME/bin:$PATH
적용
# source /etc/profile
필요한 패키지 목록
Tomcat
Tomcat-connectors톰캣 공식 사이트 : https://tomcat.apache.org/
톰캣 10.0 다운로드 페이지 : https://tomcat.apache.org/download-10.cgi
톰캣 커넥터 다운로드 페이지 : https://tomcat.apache.org/download-connectors.cgi/
리눅스에서 컴파일 방식으로 설치 - wget
wget 안될 경우 다운로드 받으세요.
# yum -y install wget
리눅스 예시 (Tomcat 10.0 버전으로 받았습니다.)
wget 다운받을 디렉토리로 이동 ( 제 경우 /root에서 받음)
# cd /root
tomcat 10.0 버전 압축파일로 다운로드
# wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.22/bin/apache-tomcat-10.0.22.tar.gz
tomcat-connectors 1.2.48 압축파일로 다운로드
# wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
압축파일 해제
해제 방법 = # tar -옵션 해제할 압축파일 명
zxvf == gzip으로 압축된 tar 아카이브를 현재 디렉토리에 풀기
# tar zxvf apache-tomcat-10.0.22.tar.gz # tar zxvf tomcat-connectors-1.2.48-src.tar.gz
파일이동
압축해제한 파일을 /usr/local/ 으로 이동(보통 컴파일로 설치할 경우 보편적으로 여기로 이동시킨다.)
이름 변경하면서 이동 apache-tomcat-10.0.22 > tomcat# mv apache-tomcat-10.0.22.tar.gz /usr/local/tomcat
tomcat-connectors을 /usr/local/tomcat/tomcat-connectors 이동
# mv tomcat-connectors-1.2.48-src /usr/local/tomcat/
파일 구성
mod_jk.so 설치
httpd.conf 파일 수정
vhosts.conf 작성
mod_jk.conf 작성
workers.properties 작성
server.xml 파일 수정
연동에 필요한 mod_jk.so 설치 방법
연동에 필요한 소스파일 환경설정하기 - ./configure
컴파일 하기 - make
설치하기 - make installTomcat-connectors 안의 native 디렉토리 안으로 이동
apxs 찾고 경로 기억해두기
# find / -name apxs
/usr/local/apache/bin/apxs환경설정 하기 (./configure)
native 이동 되어있는 상태에서 환경설정
# ./configure --with-apxs=/usr/local/apache/bin/apxs
참고 : apxs=경로는 find로 찾은 apxs 경로입니다.
컴파일 하기
# make
설치하기
# make install
mod_jk.so 설치 확인 방법
# find / -name mod_jk.so
웹 모듈디렉토리에서 확인 가능 - 경로/modules/mod_jk.so 를 확인할 수 있다.
참고
해당 설정은 여러가지 방식으로 설정 가능 합니다.
다른 분들과 설정이 다를 수 있습니다.파일 설정 구성도
부연설명
httpd.conf 파일에서 vhosts.conf, mod_jk.conf 파일을 포함시킨다. (Incldue)
vhosts.conf에서 mod_jk.so 모듈을 불러 온다.
mod_jk.conf에서 workers.properties 파일을 적용한다.
수정을 위해 찾기
# find / -name httpd.conf
참고 - ( 패키지 매니저로 설치 했을 시 기본 경로 | yum 혹은 apt-get )
CentOS - /etc/httpd/conf/httpd.conf
Ubuntu - /etc/apache2/apache2.confhttpd.conf 파일 들어가기
# vi /etc/local/apache/conf/httpd.conf
해당 내용 맨 아래 작성
Include conf/vhosts.conf
Include conf/mod_jk.conf저장 후 나가기
ESC :wq
주의 : 반드시 위에 적힌 순서에 맞게 vhosts.conf 가 mod_jk.conf 보다 윗 라인에 위치해야 합니다.
httpd.conf 가 위치에 있는 곳에서 작성 (저의 경우 /usr/local/apache/conf/httpd.conf)
# vi /usr/local/apahce/conf/vhosts.conf
vhosts.conf에 적용되는 내용
LoadModule jk_module modules/mod_jk.so # 모듈 mod_jk.so 불러오기 <VirtualHost *:80> # 모든 ip주소에서 요청을 기다림 ServerName localhost # server이름 - 웹서버 주소 JkUnmount /*.html tomcat01 # *.html 부분은 tomcat01에서 처리 안함 (apache에서 처리) JkMount /* tomcat01 # 나머지 전부 tomcat01 에서 처리(workers.porperties 참고) </VirtualHost>
붙여넣기
LoadModule jk_module modules/mod_jk.so <VirtualHost *:80> ServerName localhost JkMount /* tomcat01 </VirtualHost>
httpd.conf 가 위치에 있는 곳에서 작성 (저의 경우 /usr/local/apache/conf/httpd.conf)
# vi /usr/local/apahce/conf/mod_jk.conf
<ifModule jk_module> JkWorkersFile conf/workers.properties JkLogFile logs/mod_jk.log # log 저장 JkLogLevel info JkShmFile /var/log/httpd/jk-runtime-status JkWatchdogInterval 30 JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" # 날짜/시간을 스트링으로 변환 </ifModule>
붙여넣기
<ifModule jk_module> JkWorkersFile conf/workers.properties JkLogFile logs/mod_jk.log JkLogLevel info JkShmFile /var/log/httpd/jk-runtime-status JkWatchdogInterval 30 JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" </ifModule>
workers.properties 작성
httpd.conf 가 위치에 있는 곳에서 작성 (저의 경우 /usr/local/apache/conf/httpd.conf)
# vi /usr/local/apahce/conf/workers.properties
worker.list=tomcat01 # tomcat worker의 이름 (vhosts.conf 참고) worker.tomcat01.type=ajp13 # ajp13 프로토콜 사용해서 통신 worker.tomcat01.host=localhost # tomcat의 ip worker.tomcat01.port=8009 # 웹서버 연결에 사용하는 port 선언
붙여넣기
worker.list=tomcat01 worker.tomcat01.type=ajp13 worker.tomcat01.host=localhost worker.tomcat01.port=8009
AJP13 프로토콜을 이용하기 위해 Tomcat의 server.xml 수정합니다.
수정 내용은 톰캣 파일 중 톰캣경로/conf/server.xml
제 톰캣 경로의 경우 - /usr/local/tomcat/conf/server.xml 안에 내용 추가<Connector protocol="AJP/1.3" address="0.0.0.0" port="8009" redirectPort="8443" secretRequired="false" />
sed를 이용해서 간단히 하면
# sed -i '103i <Connector protocol="AJP/1.3" address="0.0.0.0" port="8009" redirectPort="8443" secretRequired="false" /> ' /usr/local/tomcat/conf/server.xml
설명 - /usr/local/tomcat/conf/ 에 있는 server.xml 파일 안 103번 째 줄에 < Connector protocol="AJP/1.3" address="0.0.0.0" port="8009" redirectPort="8443" secretRequired="false" />를 추가해라
시작 전 웹 서비스 확인하기
# netstat -nlp | grep 80
80, 8005, 8009, 8080 port가 없는 것이 정상
혹은 80 port가 있을 시
중지 > 시작 또는 재시작 명령어를 통하여 설정한 것을 적용 해준다.# systemctl stop httpd # 한 다음 # systemctl start httpd # 시작
혹은
# systemctl restart httpd # 재시작
Tomcat 시작해보기
Tomcat 실행 스크립트가 있는 톰캣경로/bin/ 으로 이동
# cd /usr/local/tomcat/bin/
안에 있는 startup.sh 실행
# ./startup.sh
이후 netstart -nlp | grep 80 으로 확인
# netstat -nlp | grep 80
정상적으로 진행이 되었으면
확인 가능 !
windows 에서 접속해보기
예를 들어 구성한 서버의 IP가 125.125.125.125 라고 가정을 한다면
인터넷 창에 톰캣 고양이 화면이 보이는 여부 - 두 개 전부 보여야 한다.
해당 주소 : http://125.125.125.125/index.jsp
해당 주소 : http://125.125.125.125:8080/index.jsp