CentOS에서 apache 설치 및 was 연동

CentOS에서 apache 설치 및 was 연동

이번포스팅은 WAS설치에 이어서 웹서버 설치 및 연동에 대해 포스팅 해보겠습니다.

설치준비물
  • 필수패키지 설치
    앞에서 포스팅한 Tomcat설치를 따라하셨다면 건너가도 무방합니다.
1
2
3
4
5
yum -y install pcre-devel lua-devel libxml2-devel ncurses-devel zlib
zlib-devel curl openssl openssl-devel libtermcap-devel libc-client-devel
bison gcc g++ cpp gcc-c++ freetype freetype-devel freetype-utils gd
gd-devel libjpeg libjpeg-devel libpng libpng-devel curl curl-devel
flex php-mbstring libexif-devel cmake
설치파일 다운로드
  • 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 (원하는 버전 다운로드)

설치
  • 설치 경로 설정

    1
    2
    3
    export SETUP_HOME=/프로젝트이름/setup
    export ENGINE_HOME=/프로젝트이름/project/engine
    export HTTPD_HOME=$ENGINE_HOME/httpd
  • export로 변수설정 후 폴더생성

    1
    2
    3
    mkdir -p $ENGINE_HOME
    mkdir -p $SETUP_HOME
    mkdir -p $HTTPD_HOME

httpd설치전 라이브러리를 먼저 설치해줍니다.

  • cronolog (미설치 시)
    1
    2
    3
    4
    5
    cd $SETUP_HOME
    tar -zxvf cronolog-x.x.x.tar.gz
    cd cronolog-x.x.x
    ./configure
    make && make install

여기서 jdk와 tomcat과는 다르게 ./configure와 make && make install이 있는데
./configure는 MakeFile 즉 컴파일 옵션이 설정되는 파일이 만들어지는 명령어입니다.
컴파일하는 클라이언트의 사양에 맞는 환경에 알맞는 파일이 생성됩니다.
그 후 make로 소스코드를 실제로 컴파일하여 binary 파일을 생성시킨 후
make install 명령어로 만들어진 binary 파일을 ./configure에서 지정한 ENGINE_HOME으로
이동시켜줍니다. 이 이후에도 ./configure와 make && make install이 있는데 마찬가지입니다.

  • apr 설치

    1
    2
    3
    4
    5
    cd $SETUP_HOME
    tar -zvxf apr-x.x.x.tar.gz
    cd apr-x.x.x
    ./configure --prefix=$ENGINE_HOME/apr-x.x.x
    make && make install
  • pcre 설치

    1
    2
    3
    4
    5
    cd $SETUP_HOME
    tar -zvxf pcre-x.xx.tar.gz
    cd pcre-x.xx
    ./configure --prefix=$ENGINE_HOME/pcre-x.xx
    make && make install

그 후 httpd를 설치 해줍니다.

  • httpd 설치
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    cd $SETUP_HOME
    tar -zxvf httpd-2.4.10.tar.gz
    cd httpd-2.4.10
    export 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-rewrite
    make && make install

CFLAGS명령어로 먼저 설치 한 라이브러리들과 연동 후 binary 파일을 생성시킵니다.

  • geoIP 설치
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    cd $SETUP_HOME
    tar -zvxf GeoIP-x.x.x.tar.gz
    cd ./GeoIP-x.x.x
    ./configure --prefix=$ENGINE_HOME/GeoIP
    make && make install
    cd $SETUP_HOME
    tar -zvxf geoip-api-mod_geoip2-1.2.9.tar.gz
    cd ./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 가 생성됩니다.

geoIp

그리고 $HTTPD_HOME/conf 위치에 httpd.conf파일에 LoadModule geoIP가 추가됩니다.

mod_geoIp

그 후 GeoIP.dat 파일의 압축해제 후 GeoIP 폴더에 복사합니다.

1
2
3
4
cd $SETUP_HOME
gzip -d GeoIP.dat.gz
mkdir -p $ENGINE_HOME/GeoIP/share/GeoIP
cp ./GeoIP.dat $ENGINE_HOME/GeoIP/share/GeoIP/.
tomcat-connector 설치
1
2
3
4
5
6
cd $SETUP_HOME
tar -zxvf tomcat-connectors-x.x.xx-src.tar.gz
cd tomcat-connectors-x.x.xx-src/native/
./buildconf.sh
./configure --with-apxs=$HTTPD_HOME/bin/apxs
make && make install

이 작업이 완료되면 $HTTPD_HOME/modules 안에 mod_jk.so 파일이 생성됩니다.

이렇게 설치작업은 완료됩니다. 설치를 완료 한 후, ENGINE_HOME은

engine_home
WAS 연동세팅

Apache웹서버와 Tomcat의 연동을 위하여 HTTPD의 옵션을 설정해줍니다.

1
cd $HTTPD_HOME/conf

로 이동해보면

httpdConf

이렇게 위치가 되어있습니다.
workers.properties파일과 mod_jk.conf 파일같은경우 처음세팅하신 분들은 없을 수도 있습니다.
그럴경우에는 파일을 추가해주시면 됩니다.

  • httpd.conf
    먼저 httpd.conf 파일을 세팅합니다
1
vi httpd.conf

ServerRoot를 아파치가 설치된 경로로 변경합니다.
Listen 포트를 80으로 선언해줍니다.

serverRoot

ServerName을 해당서버의 IP로 변경합니다.

serverRoot

LoadModule에 Mod_jk.so를 추가해줍니다.

LoadModule

그 후 mod_jk.conf파일을 Include 시킵니다.
지금 당장 파일이 없어도 생성을 할 것이기 때문에 일단 Include 시켜줍니다.

Include

일단 이 상태에서 httpd.conf 파일을 저장해줍니다.

  • workers.properties
    workers.properties 파일을 열어줍니다.
    1
    vi 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

workersProperties

톰캣의 server.xml에 보면 ajp13타입의 8009포트가 열려있습니다. 이 포트를 통하여 Tomcat과 연동합니다.

workersProperties
  • mod_jk.conf

이 위에서 httpd.conf 파일에 Include 시켰던 mod_jk.conf 파일을 편집합니다.

1
vi 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

mod_jk.conf

이렇게 세팅을 마친 후 웹 서버를 실행 시킵니다.

$HTTPD_HOME/bin 으로 이동해보면

apacheStart

apachectl이라는 파일이 존재하는데

  • ./apachectl start : 웹서버기동
  • ./apachectl stop : 웹서버 중지
  • ./apachectl restart : 웹서버 재기동

이렇게 웹서버를 기동시킵니다.

웹서버를 기동 시킨 후 8080 포트가 아닌 80포트로 접속 시 tomcat 고양이 메인화면이 뜨면 성공입니다.

tomcatMain
Share