Tux와 아파치를 연동한 웹서버 구축

이 문서는 tux를 이미지및 정적페이지를 위한 웹서버로,
아파치를 php를 위한 웹서버로 사용하는 방법에 대해서기술한 문서입니다.
tux는 레드햇사에서 개발한 커널기반의 웹서버입니다.
tux에 관한 자세한 내용은 다음 URL을 참조하시기 바랍니다.
http://www.redhat.com/support/manuals/TUX-2.0-Manual/index.html
http://people.redhat.com/~mingo/TUX-patches/

작성자 : 유현승<hyun [at] hlug [dot] hanyang [dot] ac [dot] kr>
작성일 : 2001.09.04

소스 버젼
os : wow 리눅스 까치버전
kernel : 2.4.8
tux : tux-2.1.0
apache : apache_1.3.20
php : php-4.0.6

1. 소스 받기
1. http://people.redhat.com/~mingo/TUX-patches/ 에서 tux에관한
커널패치와 관리툴을 받아옵니다.
tux2-full-2.4.8-C0.bz2
tux-2.1.0.tar.gz
2. apache 와 php 소스를 준비합니다.
3. ftp.kernel.org에서 커널 소스를 받아옵니다.
저는 기존에 받은 2.4.5소스에 patch-2.4.6, patch-2.4.7,
patch-2.4.8을 적용했습니다.
4. glib-devel-1.2.8-4.i386.rpm, modutils-2.4.6-1.i386.rpm, docbook-
utils-0.6-13.noarch.rpm 을 준비합니다.

2. 커널 컴파일
편의상 제가 설정한 방법대로 기술합니다.
#rpm -Uvh modutils-2.4.6-1.i386.rpm
#cp linux-2.4.5.tar.bz2 /usr/src
#cp patch-2.4.6.bz2 /usr/src
#cp patch-2.4.7.bz2 /usr/src
#cp patch-2.4.8.bz2 /usr/src
#cp tux2-full-2.4.8-C0.bz2 /usr/src
#cd /usr/src
#bzip2 -dc linux-2.4.5.tar.bz2 | tar xvf -
#bzip2 -dc patch-2.4.6.bz2 | patch -p0
#bzip2 -dc patch-2.4.7.bz2 | patch -p0
#bzip2 -dc patch-2.4.8.bz2 | patch -p0
#bzip2 -dc tux2-full-2.4.8-C0.bz2 | patch -p0
#cd linux
#make mrproper
#make menuconfig
#make dep
#make bzImage
#make modules
#make modules_install
#cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.8
#vi /etc/lilo.conf
#/sbin/lilo

% 커널 컴파일에관한 자세한 내용은 다른 문서를 참조하시기 바랍니다.
% 커널 설정시
Networking Options > Threaded LinUX application
protocol accelerator layer(TUX)
를 모듈로 설정해주셔야 합니다.
TUX를 activate할때 나오는 옵션들도 선택합니다.

3. 관리툴 컴파일 준비
1. 배포판을 설치하면 glib-devel이 설치되지 않을수 있습니다. 컴파일시
에 glib.h를 필요로 하므로 추가로
설치합니다.
#rpm -i glib-devel-1.2.8-4.i386.rpm
2. 관리툴을 컴파일하려면 jw라는 sgml 파서가 필요합니다.
#rpm -i docbook-utils-0.6-13.noarch.rpm

% docbook-utils 설치시 dependency 문제로 다른 패키지가 필요할 수
도 있습니다. 같이설치해 주시면 됩니다.

4. 관리툴 컴파일
#tar xvzf tux-2.1.0.tar.gz
#cd tux-2.1.0
#make
#make install

5. 환경설정
1. /etc/sysconfig/tux
tux 실행에 관련된 설정등을 정의하는 곳입니다. 만약 이위치에 파일이
없으면 tux.sysconfig 파일을 복사하면 됩니다.
몇가지 옵션에 관한 간략한 설명을 하겠습니다.

TUXTHREADS=1 # 커널 쓰레드의 개수를 정의합니다. 보
통 CPU의 개수에 맞추면 됩니다.
DOCROOT = /var/www/html # 웹서비스를 시작할 DOCMENT ROOT
의 위치입니다.
CGI_UID = nobody # CGI를 실행할 유저를 정의합니다. 웹서비스에서
는 보통 nobody라는 유저를 사용합니다.
CGI_GID나
DAEMON_UID,DAEMON_GID도 마찬가지입니다.
CGI_GID = nobody
DAEMON_UID = nobody
DAEMON_GID = nobody
CGIROOT = /var/www/html # DOCROOT와 같은 개념입니다.

2. 시작스크립트
tux를 실행하고 종료하는 스크립트입니다. 보통 /etc/rc.d/init.d/ 에 위
치합니다. 없으면 마찬가지로 tux.init를 복사해서
사용합니다.

3. /etc/tux.mime.types
tux에서 사용하는 mime type을 설정합니다.
php를 아파치로 redirect 하기 위해서 다음과 같이 설정합니다.

#TUX/redirct redir
TUX/redirect redir php

4. clientport 설정
/etc/sysctl.conf을 편집합니다. php를 redirect할 포트입니다. 구지
8080을 안쓰더라도 아파치의 포트와 맞춰주면 됩니다.

## Tux configuration
net.tux.clientport=8080

6. apache + php 설치
#tar xvzf php-4.0.6.tar.gz
#tar xvzf apache_1.3.20.tar.gz
#cd apache_1.3.20
#./configure
#cd ..
#cd php-4.0.6
#./configure --with-apache=../apache_1.3.20
#make
#make install
#cd ..
#cd apache_1.3.20
#./configure --prefix=/usr/local/apache --activate-
module=src/modules/php4/libphp4.a
#make
#make install

% apache와 php의 자세한 설치과정은 다른 문서를 참조하시기 바랍니
다. 기본 옵션으로만 컴파일 했습니다.

7. apache 환경설정
위 설치대로라면 /usr/local/apache에 apache가 설치 되었습니다.
conf/httpd.conf 를 열어 다음과 같이 환경설정을 해줍니다.

#Port 80
Port 8080

#DocumentRoot "/usr/local/apache/htdocs"
DocumentRoot "/var/www/html"

#<Directory "/usr/local/apache/htdocs">
<Directory "/var/www/html">

% 포트를 80이 아닌 것으로 바꾸는 것과 document root를 tux와 같게
해주는 것입니다.

8. 실행

1. apache의 실행
#/usr/local/apache/bin/apachectl start

2. tux의 실행
#/etc/rc.d/init.d/tux start

9. 테스트
1. tux 의 테스트
/var/www/html에 index.html을 만들고 접속해 봅니다.
# echo "Hi! <br> Tux is Running!!"
> /var/www/html/index.html

http://localhost/index.html

2. php 모듈의 테스트
phpinfo 함수를 이용해 설정된 내용을 봅니다.
# echo "" > /var/www/html/phpinfo.php

http://localhost/phpinfo.php

10. 이 문서를 마치며.
대용량, 고속 웹서비스가 매우 중요하게 여겨지는 시점에서 커널기반의
웹 서비스는 매우 흥미있는 아이디어입니다.
아직 많은 cgi를 제공하지는 못하지만 이렇게 기존의 아파치와 연동함으
로서 tux의 장점을 살릴수 있습니다.
이로인해 정적문서와 이미지등의 서비스 속도가 빨라지므로 전반적인 웹
서비스향상에 도움을 줄 수 있을것입니다.

tux에 대해서 접근하도록 도와주신 HLUG의 김진덕님께 감사드립니다.

본 문서의 원본은 http://hyun.paxjesus.net 에서 보실 수 있으며, 기타
문의는 <hyun98 [at] pasxjesus [dot] net>으로
메일을 주시기 바랍니다.

관련 링크: http://hyun.paxjesus.net/

'Server' 카테고리의 다른 글

mysqladmin 총정리  (0) 2001.12.16
squid로 웹서버 가속(?)  (0) 2001.12.12
proftpd에서 FXP사용  (0) 2001.12.08
khttpd (커널에 포함된 웹서버 - 수정)  (2) 2001.12.01
icecast, ices를 이용한 mp3 스트리밍 서버 운영  (4) 2001.11.27

+ Recent posts