CentOS에서 apache 설치 및 was 연동
이번포스팅은 WAS설치에 이어서 웹서버 설치 및 연동에 대해 포스팅 해보겠습니다.
설치준비물
- 필수패키지 설치
앞에서 포스팅한 Tomcat설치를 따라하셨다면 건너가도 무방합니다.
|
|
설치파일 다운로드
- PCRE 라이브러리 (HTTPD 설치 필수 라이브러리)
http://sourceforge.net/projects/pcre/files/pcre/
pcre-x.xx.tar.gz (원하는 버전 다운로드)
- APR 라이브러리 (HTTPD 설치 필수 라이브러리)
http://mirror.apache-kr.org/apr/
apr-x.x.x.tar.gz (원하는 버전 다운로드)
apr-util-x.x.x.tar.gz (원하는 버전 다운로드)
- GEOIP 라이브러리 (세계 IP 국가코드 라이브러리)
https://github.com/maxmind/geoip-api-c/releases
GeoIP-x.x.x.tar.gz (원하는 버전 다운로드)
https://github.com/maxmind/geoip-api-mod_geoip2/releases
geoip-api-mod_geoip2-x.x.x.tar.gz (원하는 버전 다운로드)
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
GeoIP.dat
- HTTPD 엔진
http://httpd.apache.org/
httpd-x.x.xx.tar.gz (원하는 버전 다운로드)
- mod_jk.so (HTTPD와 WAS Connector)
http://tomcat.apache.org/download-connectors.cgi
tomcat-connectors-x.x.xx-src.tar.gz
- Tomcat (미설치자만)
http://tomcat.apache.org/download-70.cgi
apache-tomcat-x.x.xx.tar.gz (원하는 버전 다운로드)
설치
설치 경로 설정
123export SETUP_HOME=/프로젝트이름/setupexport ENGINE_HOME=/프로젝트이름/project/engineexport HTTPD_HOME=$ENGINE_HOME/httpdexport로 변수설정 후 폴더생성
123mkdir -p $ENGINE_HOMEmkdir -p $SETUP_HOMEmkdir -p $HTTPD_HOME
httpd설치전 라이브러리를 먼저 설치해줍니다.
- cronolog (미설치 시)12345cd $SETUP_HOMEtar -zxvf cronolog-x.x.x.tar.gzcd cronolog-x.x.x./configuremake && make install
여기서 jdk와 tomcat과는 다르게 ./configure와 make && make install이 있는데
./configure는 MakeFile 즉 컴파일 옵션이 설정되는 파일이 만들어지는 명령어입니다.
컴파일하는 클라이언트의 사양에 맞는 환경에 알맞는 파일이 생성됩니다.
그 후 make로 소스코드를 실제로 컴파일하여 binary 파일을 생성시킨 후
make install 명령어로 만들어진 binary 파일을 ./configure에서 지정한 ENGINE_HOME으로
이동시켜줍니다. 이 이후에도 ./configure와 make && make install이 있는데 마찬가지입니다.
apr 설치
12345cd $SETUP_HOMEtar -zvxf apr-x.x.x.tar.gzcd apr-x.x.x./configure --prefix=$ENGINE_HOME/apr-x.x.xmake && make installpcre 설치
12345cd $SETUP_HOMEtar -zvxf pcre-x.xx.tar.gzcd pcre-x.xx./configure --prefix=$ENGINE_HOME/pcre-x.xxmake && make install
그 후 httpd를 설치 해줍니다.
- httpd 설치12345678910111213141516cd $SETUP_HOMEtar -zxvf httpd-2.4.10.tar.gzcd httpd-2.4.10export CFLAGS="${CFLAGS} -DHARD_SERVER_LIMIT=8192 -DDEFAULT_SERVER_LIMIT=8192"./configure --prefix=$ENGINE_HOME/httpd \--with-apr=$ENGINE_HOME/apr-x.x.x \--with-apr-util=$ENGINE_HOME/apr-util-x.x.x \--with-pcre=$ENGINE_HOME/pcre-x.xx \--with-mpm=prefork \--enable-cache \--enable-ssl --with-ssl=/usr \--enable-rewrite --enable-lib64 --libdir=/usr/lib64 \--enable-mods-shared=all --enable-so --enable-rewritemake && make install
CFLAGS명령어로 먼저 설치 한 라이브러리들과 연동 후 binary 파일을 생성시킵니다.
- geoIP 설치1234567891011121314cd $SETUP_HOMEtar -zvxf GeoIP-x.x.x.tar.gzcd ./GeoIP-x.x.x./configure --prefix=$ENGINE_HOME/GeoIPmake && make installcd $SETUP_HOMEtar -zvxf geoip-api-mod_geoip2-1.2.9.tar.gzcd ./geoip-api-mod_geoip2-1.2.9$HTTPD_HOME/bin/apxs -i -a \-L$ENGINE_HOME/GeoIP/lib \-I$ENGINE_HOME/GeoIP/include \-lGeoIP -c ./mod_geoip.c
geoIP 라이브러리를 생성하게되면 $HTTPD_HOME/modules/ 위치에 mod_geoip.so 가 생성됩니다.
그리고 $HTTPD_HOME/conf 위치에 httpd.conf파일에 LoadModule geoIP가 추가됩니다.
그 후 GeoIP.dat 파일의 압축해제 후 GeoIP 폴더에 복사합니다.
|
|
tomcat-connector 설치
|
|
이 작업이 완료되면 $HTTPD_HOME/modules 안에 mod_jk.so 파일이 생성됩니다.
이렇게 설치작업은 완료됩니다. 설치를 완료 한 후, ENGINE_HOME은
WAS 연동세팅
Apache웹서버와 Tomcat의 연동을 위하여 HTTPD의 옵션을 설정해줍니다.
|
|
로 이동해보면
이렇게 위치가 되어있습니다.
workers.properties파일과 mod_jk.conf 파일같은경우 처음세팅하신 분들은 없을 수도 있습니다.
그럴경우에는 파일을 추가해주시면 됩니다.
- httpd.conf
먼저 httpd.conf 파일을 세팅합니다
|
|
ServerRoot를 아파치가 설치된 경로로 변경합니다.
Listen 포트를 80으로 선언해줍니다.
ServerName을 해당서버의 IP로 변경합니다.
LoadModule에 Mod_jk.so를 추가해줍니다.
그 후 mod_jk.conf파일을 Include 시킵니다.
지금 당장 파일이 없어도 생성을 할 것이기 때문에 일단 Include 시켜줍니다.
일단 이 상태에서 httpd.conf 파일을 저장해줍니다.
- workers.properties
workers.properties 파일을 열어줍니다.1vi workers.properties
이렇게 vi 편집모드로 열게 되면 만약 파일이 있다면 파일을 연 후, 편집모드로 들어가고
없는파일이라면 새 파일이 생성됩니다. 그 후 workers.properties 파일에 밑 내용을 추가합니다.
workers.tomcat_home=톰캣경로
worker.list=tomcat
worker.tomcat.type=ajp13
worker.tomcat.host=xxx.xxx.xxx.xxx-> 연결될 와스 ip로 변경
worker.tomcat.port=8009
worker.tomcat.lbfactor=1
worker.tomcat.connection_pool_timeout=600
worker.tomcat.socket_keepalive=1
톰캣의 server.xml에 보면 ajp13타입의 8009포트가 열려있습니다. 이 포트를 통하여 Tomcat과 연동합니다.
- mod_jk.conf
이 위에서 httpd.conf 파일에 Include 시켰던 mod_jk.conf 파일을 편집합니다.
|
|
편집모드로 열어줍니다. 이때도, 파일이 없다면 파일은 생성됩니다.
밑의 코드를 추가시켜줍니다. 로그파일과 tomcat과의 연동 시 어떤 properties를 사용하는지
어떤 파일을 tomcat에 넘기는지를 세팅해줍니다.
JkWorkersFile /projectName/project/engine/httpd/conf/workers.properties
JkShmFile /projectName/project/engine/apache-tomcat-8.0.41/logs/modjk%Y%m%d.shm
JkLogFile /projectName/project/engine/apache-tomcat-8.0.41/logs/modjk%Y%m%d.log
JkLogLevel error
JkMount / tomcat
JkUnmount /.jsp tomcat
이렇게 세팅을 마친 후 웹 서버를 실행 시킵니다.
$HTTPD_HOME/bin 으로 이동해보면
apachectl이라는 파일이 존재하는데
- ./apachectl start : 웹서버기동
- ./apachectl stop : 웹서버 중지
- ./apachectl restart : 웹서버 재기동
이렇게 웹서버를 기동시킵니다.
웹서버를 기동 시킨 후 8080 포트가 아닌 80포트로 접속 시 tomcat 고양이 메인화면이 뜨면 성공입니다.