728x90
블로그가 이전 작업 중에 있습니다.아래의 링크를 클릭하시면 동일한 내용을 보실 수 있습니다.
https://suwoni-codelab.com/linux/2017/05/29/Linux-CentOS-Apache-Tomcat/
안녕하세요~ Apache와 Tomcat의 연동과 관련한 글을 시작해보겠습니다.
Tomcat도 단독으로 서비스를 할 수 있으나 보편적으로 Apache와 연동하여 사용하는 경우가 많습니다. 그 이유는 아래와 같습니다.
- 정적컨텐츠의 서비스 속도(이미지 동영상의 경우 Apache가 빠름)
- 여러 대의 Apache와 Tomcat서버의 클러스터링 구성
- Apache 웹서버의 다양한 모듈 확장
- 보안 강화
연동 방식은 mod_jk, mod_proxy, mod_prox_ajp 세가지 방식이 존재한다고 합니다만, 저는 mod_jk 방식만을 다루겠습니다. mod_jk로 연동하는 경우가 많고, 나머지 2가지에 비해 URL 또는 컨텐츠별 설정이 쉽다고 합니다.
1. mod_jk설치
mod_jk를 설치 하려면 gcc, gcc-c++, httpd-devel 세가지 패키지가 설치되어 있어야 합니다.
yum install gcc gcc-c++ httpd-devel위 명령어를 입력하여 3가지 패키지를 모두 설치합니다.
화면 중간에 보시면 tar.gz파일의 링크가 있습니다. 우클릭하여 ‘링크 주소 복사’ 를 통해 링크를 카피합니다.
다운로드 받을 디렉토리 위치로 이동한 후 파일을 아래의 명령어로 다운로드 받습니다.
wget -c 링크카피주소
다운로드 받은 파일의 확장자가 tar.gz입니다. 이는 압축파일이며, 압축파일을 해제하기 위해 아래의 명령어를 실행합니다.
tar zxvf tomcat-connector*
압축이 풀리며 디렉토리가 생성된 것을 확인할 수 있습니다.
생성된 디렉토리 안에 native디렉토리로 들어갑니다.
Makefile을 생성하기 위해 아래 명령어를 실행합니다. 옵션 내용은 Apache확장기능 설치를 도와주는 유틸리티의 경로입니다. 다른 블로그나 사이트에서의 설명에는 /usr/sbin/아래의 경로로 지정으로 설명되어져 있는데 제가 설치 한버전은 /usr/bin 경로에 있었습니다. 경로에 찾을수 없다는 에러가 발생하신다면 /usr/sbin의 경로도 한번 살펴보시기 바랍니다.
./configure --with-apxs=/usr/bin/apxs
make명령어로 컴파일을 실행합니다.
make컴파일 완료후 install 합니다.
make installinstall 후 /etc/httpd/modules/ 경로의 파일 안에 mod_jk.so파일이 생성되어있음을 확인할 수 있습니다.
Selinux의 보안관련 설정을 변경해주어야 하는데요, 아래의 명령어를 실행합니다.
chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so
2. Apache 설정
Apache의 설정은 /etc/httpd/conf/httpd.conf 파일인데 vi 에디터로 오픈합니다.
vi에디터 창에서 / 를 누르고 LoadModule을 찾아(엔터후 n버튼을 누르면 다음찾기가 됩니다.) 그 아래쪽에 다음의 내용을 추가합니다.
시리즈 연재에서 막바지에 명령어와 vi 에디터 정리 편도 담겠습니다. 😆
vi /etc/httpd/conf/httpd.conf
LoadModule jk_module modules/mod_jk.so <VirtualHost *:80> ServerName localhost # 확장자 jsp, json, xml, do를 가진 경로는 woker tomcat으로 연결하는 구문입니다. JkMount /*.jsp tomcat JkMount /*.json tomcat JkMount /*.xml tomcat JkMount /*.do tomcat </VirtualHost>
화면에 보시면 conf.modules.d 경로가 include가 된 것을 볼 수 있습니다.
/etc/httpd/conf.modules.d 경로에 진입하여 vi mod_jk.conf 를 실행하여 새로운 설정파일을 오픈 합니다.
vi /etc/httpd/conf.modules.d/mod_jk.conf
<IfModule mod_jk.c> # 워커 설정파일 위치 JkWorkersFile conf/workers.properties # 공유 메모리파일 위치 반드시 Selinux 보안때문에 run에 위치 필수 JkShmFile run/mod_jk.shm # log 위치 JkLogFile logs/mod_jk.log # 로그레벨 설정 JkLogLevel info # 로그 포맷에 사용할 시간 형식을 지정한다. JkLogStampFormat "[%y %m %d %H:%M:%S] " </IfModule>
:wq로 저장하고 빠져 나옵니다.
이제 mod_jk.conf 파일에서 설정한 워커 설정 파일을 만들 차례 입니다. 설정한 경로가 /etc/httpd/conf/workers_jk.properties 입니다. vi 로 해당경로 를 오픈하여 파일을 생성합니다.
vi /etc/httpd/conf/workers.properties
worker.list=tomcat worker.tomcat.port=8009 worker.tomcat.host=localhost worker.tomcat.type=ajp13 worker.tomcat.lbfactor=1
vi /usr/share/tomcat/conf/server.xml
마지막으로 다시 /etc/httpd/conf/httpd.conf파일을 열어 Apache와 Tomcat Document위치를 맞추어줍니다. 맞추어 주지 않으면 jsp 파일은 보이지만.. 이미지와 CSS가 로드 되지 않습니다.
httpd.conf파일을 오픈하여 DocumentRoot를 검색하여 Tomcat의 문서 경로로 변경해줍니다.
‘/usr/share/tomcat/webapps/ROOT’ 입니다.
vi /etc/httpd/conf/httpd.conf
그리고 아래의 Directory 권한을 추가해줍니다.
<Directory "/usr/share/tomcat/webapps/ROOT"> AllowOverride none Require all granted </Directory>
chcon -R --type=httpd_sys_rw_content_t /usr/share/tomcat/webapps/ROOT
이제 결과를 확인 하기 위하여 http://아이피/index.jsp로 들어가봅니다. 8080포트 없이 진입했는데 Tomcat화면이 나오시면 성공입니다.
포트 번호 없이도 톰캣의 화면이 보여집니다. 연동 작업이 완료되었습니다. 감사합니다.
다음 글은 소스 관리 툴인 GitLab 설치 입니다.
728x90
'CodeLab > Linux' 카테고리의 다른 글
13. 리눅스(CentOS) 개발 놀이터 만들기 - Jenkins 와 gitlab 연동 및 Tomcat배포 자동화 (5) | 2017.06.17 |
---|---|
12. 리눅스(CentOS) 개발 놀이터 만들기 - Jenkins 설치 (0) | 2017.06.04 |
11. 리눅스(CentOS) 개발 놀이터 만들기 - git과 gitlab 설치 (4) | 2017.06.02 |
10. 리눅스(CentOS) 개발 놀이터 만들기 - Node.js 그리고 Mongodb 설치 (0) | 2017.05.31 |
08. 리눅스(CentOS) 개발 놀이터 만들기 - Tomcat 설치 (0) | 2017.05.28 |
07. 리눅스(CentOS) 개발 놀이터 만들기 - Apache 웹서버 설치 (0) | 2017.05.27 |
06. 리눅스(CentOS) 개발 놀이터 만들기 - MariaDB 설치 (0) | 2017.05.24 |
05. 리눅스(CentOS) 개발 놀이터 만들기 - Samba 설치 (1) | 2017.05.23 |