프로젝트가 마무리 되고, 실제 서비스 적용 할 때 두 가지 방법으로 나뉜다.


  1. WEB Server, WAS(Web Application Server)
  2. WAS(Web Application Server)

첫 번째 방법은 정적 요소인 Image, Css, Javascript 파일은 WEB Server 에서 응답 하고, 프로그래밍 요소가 들어간 요청 에 대해서는 역 프록시(Reverse Proxying) 하여 WAS 로 요청을 전달 한다. Business Logic 처리 후 결과를 응답 한다.
두 번째 방법은 WAS 에서 정적 요소와, 프로그래밍 요소가 들어간 요청을 받고 응답 한다.


보통 관리자 페이지는 내부 네트워크에 있는 PC 만 접근이 되야 한다. WAS 만 사용 하는 경우에는 프로그래밍 적으로 제한해야 하지만, WEB Server 사용 시 서버 설정으로 제한 할 수 있다.


  • /httpd/conf/httpd-vhosts.conf
<Location "/admin">
    Order mutual-failure
    Allow from 192.168.0.1
</Location>

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPreserveHost On


Directory 와는 다르게 Location 은 Url 기준 이다. 속성 값에 해당 주소를 설정 한다.


Order Value Description
1 deny, allow deny, allow 지시자 검사
2 allow, deny allow, deny 지시자 검사
3 mutual-failure 모든 접속을 거부 Allow from Ip 만 허용


allow 는 허용 되는 Ip 이고, deny 는 반대 되는 개념 이다.


참고 사이트


통상 서버 구축 시 필요에 따라 정적 파일은 WEB 서버, 프로그래밍 요소가 들어간 파일은 WAS 가 처리 한다. 설정 방법에 대해 알아 보자.


  • /httpd/conf/extra/httpd-vhosts.conf

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/home/sample/www"
    ServerName sample.co.kr
    ServerAlias www.sample.co.kr

    ErrorLog "logs/error_log"
    CustomLog "logs/access_log" common

    ProxyPass /upload !
    ProxyPassReverse /upload !

    ProxyPass / http://localhost:8080/   
    ProxyPassReverse / http://localhost:8080/   
    ProxyPreserveHost On

</VirtualHost>

ProxyPass /upload ! - WEB 서버에서 DocumentRoot 하위 파일을 참조 하여 응답 한다. 

ProxyPass / http://localhost:8080/ - WAS 로 리다이렉션 한다. 

ProxyPreserveHost On - WAS 로 리다이렉션 할때 HOST 정보를 함께 전달 한다.


위 내용을 적용 한 후 서버를 재 시작 해보자.


1. 다운로드


wget http://apache.mirror.cdnetworks.com/httpd/httpd-2.2.29.tar.gz
mkdir httpd
mv httpd-2.2.29.tar.gz httpd
tar zxvf httpd-2.2.29.tar.gz


2. 설정하기


./configure \
--prefix=/home/whitelife/httpd-2.2.29 \
--with-mpm=worker \
--enable-module=so \
--enable-mods-shared=most \
--enable-maintainer-mode \
--enable-deflate \
--enable-headers \
--enable-rewrite \
--enable-ssl \
--enable-proxy \
--enable-proxy-http \
--enable-proxy-ajp \
--enable-proxy-balance


3. 컴파일 하기


make


4. 설치 하기


make install


5. 확인 하기


/home/whitelife/httpd-2.2.29/bin/httpd -V


6. 시작 하기


/home/whitelife/httpd-2.2.29/bin/apachectl start


http://localhost/ 접속해 보자.


참고 사이트


문제 발생


checking for SSL/TLS toolkit base... none
checking for OpenSSL version... checking openssl/opensslv.h usability... no
checking openssl/opensslv.h presence... no
checking for openssl/opensslv.h... no
checking openssl/ssl.h usability... no
checking openssl/ssl.h presence... no
checking for openssl/ssl.h... no
no OpenSSL headers found
checking for SSL-C version... checking sslc.h usability... no
checking sslc.h presence... no
checking for sslc.h... no
no SSL-C headers found
configure: error: ...No recognized SSL/TLS toolkit detected


문제 해결


yum install -y openssl openssl-devel

참고 사이트


문제 발생


checking whether to enable mod_deflate... checking dependencies
checking for zlib location... not found


문제 해결


yum -y install zlib-devel

참고 사이트


+ Recent posts