본문 바로가기
IT 생활

Apache + Tomcat 연동

by freeyj 2023. 8. 23.

EC2 생성

  • bastion
  • web 2대
  • was 2대

bastion 생성 완료 후 접속!

  • .pem 키 Fileziller로 옮기기
  • web,was 접속 test

--> ssh -i test.pem ec2-user@'ec2 ip'

test 환경 버전

os : amazon linux2

apache : 2.4.56

tomcat-connectors : 1.2.48

jdk : 1.8.0

tomcat : 8.5

db: rds / mysql 8.0.32

db-connector: 8.1

 

Web 서버에서 진행

1. apache 설치

# yum install httpd

tomcat-connector 설치 시 필요
# yum install httpd-devel

2. apache 정상 설치 여부 확인

# systemctl start httpd

80 포트 확인
# netstat -tnpl 

3. tomcat 연동 시 필요한 모듈 설치 (Tomcat Connectors)

# cd /usr/locar/src
# wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
# tar xvfz tomcat-connectors-1.2.48-src.tar.gz
# cd /tomcat-connectors-1.2.48-src/native
# ./buildconf.sh
# find / -name apxs  → 결과값 복사 /usr/bin/apxs
# ./configure --with-apxs=/usr/bin/apxs → apxs 경로 지정 중요!
# make

a. 진행 과정에서 아래와 같이 오류..

/usr/bin/ld: unrecognized option '-specs=/usr/lib/rpm/redhat/redhat-hardened-ld'

/usr/bin/ld: use the --help option for usage information

collect2: error: ld returned 1 exit status

make[1]: *** [Makefile:83: mod_jk.la] Error 1

make[1]: Leaving directory '/usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0'

make: *** [Makefile:473: all-recursive] Error 1

오류를 해결하기 위해 아래의 경로로 이동!
# cd /usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0
# vi Makefile

해결방법

- Wl, -specs=/usr/lib/rpm/redhat/redhat-hardened-ld 해당 부분 삭제 후 저장

Make 할 경로로 다시 이동!
# cd /usr/local/src/tomcat-connectors-1.2.48-src/native
make clean 후 make 진행
# make clean && make

b. 또 에러 발생..

/usr/bin/ld: unrecognized option '-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1'

/usr/bin/ld: use the --help option for usage information

collect2: error: ld returned 1 exit status

make[1]: *** [Makefile:83: mod_jk.la] Error 1

make[1]: Leaving directory '/usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0'

make: *** [Makefile:473: all-recursive] Error 1

 

위에 에러와 같은 방식으로 해결 해주면 됨..ㅎㅎ

# cd /usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0
# vi Makefile

해결방법

- Wl,-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 해당 부분 삭제 후 저장

# cd /usr/local/src/tomcat-connectors-1.2.48-src/native
make clean 후 make 진행
# make clean && make
# make install
 → make 과정에서 오류가 더 이상 안난다면.. 진행

4. 정상적으로 묘듈 설치 되었는지 확인

# cd /etc/httpd/modules
# ls -al | grep mod_jk.so

 

Was 서버에서 진행!

1. Openjdk 설치

# cd /usr/local/src/
# wget https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u342-b07/OpenJDK8U-jdk_x64_linux_8u342b07.tar.gz
# tar xvzf OpenJDK8U-jdk_x64_linux_8u342b07.tar.gz
# cd /openjdk-8u342-b07/bin/
# ./java -version

2. Openjdk 환경변수 설정

→ 다운로드한 경로로 환경변수 설정해야 함.

Shift + G 를 눌러 해당 파일 가장 마지막 줄로 이동하여 아래의 내용 입력
# vi /etc/profile
JAVA_HOME=/usr/local/src/openjdk-8u342-b07/bin
JRE_HOME=/usr/local/src/openjdk-8u342-b07/jre

export JAVA_HOME
export JRE_HOME

:wq! -> 저장
# source /etc/profile
# echo $JAVA_HOME → 환경변수가 잘 적용되었는지 확인

3. Alias(별칭) 설정

Shift + G 를 눌러 해당 파일 가장 마지막 줄로 이동하여 아래의 내용 입력
# vi /etc/bashrc
alias java="/usr/local/src/openjdk-8u342-b07/bin/java"
alias javac="/usr/local/src/openjdk-8u342-b07/bin/javac"

:wq! -> 저장

# source /etc/bashrc
# java -version

4. Tomcat 설치

# cd /usr/local/src
# wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.91/bin/apache-tomcat-8.5.91.tar.gz
# tar xvzf apache-tomcat-8.5.91.tar.gz

5. Tomcat 환경변수 설정

openjdk 환경변수 밑에 넣기!
# vi /etc/profile

CATALINA_HOME=/usr/local/src/apache-tomcat-8.5.91
CLASSPATH=$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$HOME/bin:$CATALINA_HOME/bin

export CLASSPATH CATALINA_HOME
export PATH

:wq! -> 저장
# source /etc/profile

6. Tomcat 실행

# /usr/local/src/apache-tomcat-8.5.91/bin
# ./start.up

7. tomcat server.xml 파일 수정

# vi /usr/local/src/apache-tomcat-8.5.91/conf/server.xml
             a. 8080 포트 주석 후 8009 포트 주석 해제
             b. secretRequired="false" 추가

<Connector protocol="AJP/1.3"
address="0.0.0.0"
port="8009"
secretRequired="false"
redirectPort="8443" />

:wq! -> 저장

# tomcat 재시작

8009 포트 올라왔는지 확인
# netstat -tnpl

 

Web 서버에서 진행!

1. apache + Tomcat 연동

workers.properties 파일 생성
# cd /etc/httpd/conf
# vi workers.properties
host 부분에 '톰켓 서버 IP' 또는 'nlb DNS 이름 지정'

worker.list=’임의 name 지정’
worker.’지정한 name’.port=8009
worker.’지정한 name’.host=’톰켓 IP’
worker.’지정한 name’.type=ajp13
worker.’지정한 name’.lbfactor=1

:wq! -> 저장

uri.properties 파일 생성
# cd /etc/httpd/conf
# vi uri.properties

/*.do=’지정한 name’
/*.jsp=’지정한 name’

:wq! -> 저장

# httpd 재시작

 

was 서버에서 진행
# cd /usr/local/src/apache-tomcat-8.5.91/webapps/ROOT
# vi test.jsp

<HTML>
<HEAD>
<TITLE>Hello World</TITLE>
</HEAD>
<BODY>
<H1>Hello World</H1>
Today is: <%= new java.util.Date().toString() %>
</BODY>
</HTML>

 

마지막!!!!!!!​

http://’web 서버’/test.jsp 접속 후 Hello World 출력 되면 성공!

 

 

WAS + DB 연동 방법은 ?? 

https://freedomlife-work.tistory.com/11