본문 바로가기
프로그래밍 기초

apache 설치 및 tomcat 과 연동 그리고 에러페이지 설정 (2)

by ez.pang 2023. 8. 9.

2023.08.04 - [프로그래밍 기초] - apache 설치 및 tomcat 과 연동 그리고 에러페이지 설정 (1)

 

apache 설치 및 tomcat 과 연동 그리고 에러페이지 설정 (1)

고객이 운영 서버 반영할 때 잠깐이라도 톰캣이 내려가 있는동안 사용자가 들어왔을때 에러페이지가 보여지면 안된다고 한다.. 톰캣 내렸다 올리는게 10초도 안걸리지만.. 그래도 맞는 말이긴

ezpang.tistory.com

 

이번엔 아파치랑 톰캣이랑 연결하겠음.

 

1. 저번에 다운받았던 mod_jk-1.2.48.....zip 파일의 압축을 해제하면

이렇게 되는데

우리가 필요한건 mod_jk.so 파일임

이 친구를 저번에 설치까지 완료한 아파치 폴더로 이동시켜줘야함.

 

2. mod_jk.so 파일을 복사해서

본인이 설치파 아파치 경로에 modules 폴더에 붙여넣기 해주면됨

 

3. mod_jk.so 라는 모듈이 생겼으니 사용하려면 소스에 추가해줘야함

저번에 말했던 대로 httpd.conf 파일은 나무의 기둥 역할을 한 댔음.

conf 폴더의 httpd.conf 파일을 열어서 내리다보면

LoadModule 이라는 명령어가 쭉 작성되어있는 구간이 있음.

대부분 # 이 붙어있을 텐데, 이건 다 주석임.

나중에 필요하면 주석을 해제해서 사용하는건데.. 뭐가 뭔지는 상황에 따라 찾아보면서 해야할듯.. 너무많음

암튼!

그 구간 맨 하단에 mod_jk.so 모듈을 사용하겠다는 명령어를 추가해야함

LoadModule jk_module modules/mod_jk.so 

<IfModule jk_module>
Include conf/mod_jk.conf
</IfModule>

라는 명령어를 추가해줌.

if 가 붙어있는걸로 봐선 jk_module 이라는 게 있으면 conf 폴더의 mod_jk.conf 파일을 아파치 구동시 설정파일로 활용하겠다는 것임.

계속 말했듯 httpd.conf 는 기둥임. 그럼 mod_jk.conf 는 뭐다? 가지이다~

근데 conf 폴더에 mod_jk.conf 파일이 없음. 그럼 만들어야지 뭐..

 

4. 일단 메모장이나 텍스트 에디터를 열어서

JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkMount /* worker1

이렇게 작성해주면 아주 기본적인 것만 설정하게 된 것임.

JkWorkersFile 명령어는 worker 를 설정하는 건데 일종의 로드밸런서라고 생각하면 됨. workers.properties는 새로 만들어야하는데 뒤에서 만들면서 추가설명하겠음.

JkLogFile 명령어는 아파치가 실행될 때 생길 로그들을 저장할 위치와 그 파일의 이름을 설정해줌.

로그 파일을 좀더 상세히 날짜별로 정리하고 싶을 땐 아래 코드로 교체해주면됨.

JkLogFile "|bin/rotatelogs.exe -l logs/mod_jk_%Y%m%d.log 86400"
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

JkMount 명령어는 worker.properties 파일을 만들면서 같이 설명하겠음.

작성이 끝났다면 conf 폴더 하위에 저장해주면 됨.

 

5. 이어서 workers.properties 를 만들어 줘야함. 마찬가지로 메모장이나 텍스트 에디터로 작성하면됨.

worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=127.0.0.1
worker.worker1.type=ajp13

이렇게 작성해주면 되는데.

worker 란 로드밸런서 역할이라고 생각하면됨.

쉽게 생각해서 아파치 1개를 사용해도 톰캣은 여러개 연결시킬 수 있는거라고 생각하면 됨.

mod_jk.conf 에 작성한 

JkMount /* worker1

이 명령어는 사용자가 아파치에 요청한 모든(/*) 요청은 worker1 의 톰캣으로 넘기겠다는 의미임.

파일이름이 어떻든, 파일형식이 어떻든, .do 등의 요청이든 간에 모조리 톰캣에 넘기게 됨.

만약 특정 요청은 톰캣에 넘기고 싶지 않다면

JkUnMount /index.html worker1

JkUnMount 명령어로 제외시키면 됨.

사용자가 index.html 을 요청하게 되면 worker1 이라는 톰캣에 처리요청을 넘기지 않음.

이걸 활용해서 톰캣이 내려가 있을 때 요청이 들어오면 아파치에서 특정화면을 보여주게 할 것임. 다음 글에 이어서!

일단 여기까지 아파치쪽 설정은 됬고 이제 톰캣쪽 설정을 해야함.

 

6. 톰캣의 server.xml 을 열고

이랬던 소스를

이렇게 바꿔주면됨.

    <Connector protocol="AJP/1.3" 
    		   address="127.0.0.1"
    		   port="8009" 
    		   redirectPort="8443" secretRequired="false" URIEncoding="UTF-8"/>

이렇게 하면 톰캣이랑 아파치랑 연결까지 된것.

이제 테스트

 

7. 아파치 먼저 켜고

톰캣도 켜고

브라우저에서 http:localhost 로 접속하여 잘들어가진다면 성공.

 

다음글은 톰캣이 죽었을때 보여질 화면을 아파치에 설정하는 방법임.

 

2023.08.09 - [프로그래밍 기초] - apache 설치 및 tomcat 과 연동 그리고 에러페이지 설정 (3)

 

apache 설치 및 tomcat 과 연동 그리고 에러페이지 설정 (3)

2023.08.09 - [프로그래밍 기초] - apache 설치 및 tomcat 과 연동 그리고 에러페이지 설정 (2) apache 설치 및 tomcat 과 연동 그리고 에러페이지 설정 (2) 2023.08.04 - [프로그래밍 기초] - apache 설치 및 tomcat 과

ezpang.tistory.com

 

댓글