server Lighttpd 설치

2010.05.11 19:38

Elkha 조회 수:20677

참고 문서  

lighttpd.png

지금 보고 계시는 사이트의 서버를 구축하는 내용입니다. (32bit CentOS)
저는 이 분야에 관한 지식이 깊지 않으며, 정확하지 않은 내용이 있을 수도 있습니다.

들어가기에 앞서

저는 VPS(가상호스팅)사용자로, 서버정보에 나와있듯이 256MB 메모리의 시스템으로 서버를 구축하려 했습니다. 처음엔 Apache 에서 서버를 운영했지만 XE운용시 메모리 부족, 서버 강제종료가 발생할 가능성이 높아보여 대체 웹 서버가 필요했습니다. (아니면 서버를 업글하든지요 ㅡ,.ㅡ)

 Hostple의 운영자 가루군님은 Apache 보다 가벼운 Lighttpd, Ngnix 웹 서버를 추천해주셨고 저는 Ngnix 설치를 시도했습니다. Ngnix 제작자가 러시아 사람이라는 말이 있던데.. 설치하다가 막히는 부분이 있어도 매뉴얼 찾기가 힘들더군요.

 이후 Lighttpd 으로 시선을 돌렸고 많은 시행착오를 겪었지만 결국 성공적으로 설치했습니다. 그 증거로 이 서버가 Lighttpd 입니다 -_-v

 목적은 메모리 절약이었으나 의외로 상당한 속도를 내주더군요.(페놈 덕분인가?)
전에 구축했던 Apache mpm=worker 보다 빠른걸 체감할 수 있을 정도니 말입니다.
원래 목표인 메모리 점유율은 달라진 점이 없는데.. 접속자가 몰리는 때는 좀 다를것이라 기대합니다.

Lighttpd 설치

처음에는 컴파일을 시도했지만 몇 번의 시행착오를 겪고 yum 으로 설치하기로 했습니다.
다른건 다 컴파일 해놓고 이 녀석만 yum 처리한다는게 참 아쉽습니다.
(지금은 컴파일 할 수 있을 듯.. -_-++)

# rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# yum install lighttpd
# yum install lighttpd-fastcgi
# vi /etc/lighttpd.conf

# 사용할 모듈
server.modules  = (
 "mod_rewrite",
 "mod_redirect",
 "mod_fastcgi",
 "mod_compress",
 "mod_accesslog",
 "mod_extforward" )

# php 연동
fastcgi.server = ( ".php" =>
   ( "localhost" =>
     ("socket" => "/tmp/php-fastcgi.socket",
      "bin-path" => "/usr/local/php/bin/php-cgi" )
) )

# XE rewrite mod (XE 설치경로가 /xe/ 인 경우)
url.rewrite = (
  "^/xe/([a-zA-Z0-9_]+)/files/attach/images/(.*)" => "./xe/files/attach/images/$2",
  "^/xe/([a-zA-Z0-9_]+)/modules/(.*)" => "./xe/modules/$2",
  "^/xe/([a-zA-Z0-9_]+)/common/(.*)" => "./xe/common/$2",
  "^/xe/([a-zA-Z0-9_]+)/([[:digit:]]+)page$" => "./xe/index.php?mid=$1&page=$2",
  "^/xe/rss/([[:digit:]]+){0,14}/([[:digit:]]+){0,14}/([[:digit:]]+)$" => "./xe/index.php?module=rss&act=rss&start_date=$1&end_date=$2&page=$3",
  "^/xe/rss/([[:digit:]]+)$" => "./xe/index.php?module=rss&act=rss&page=$1",
  "^/xe/rss$" => "./xe/index.php?module=rss&act=rss",
  "^/xe/admin$" => "./xe/index.php?module=admin",
  "^/xe/([a-zA-Z0-9_]+)/api$" => "./xe/index.php?mid=$1&act=api",
  "^/xe/([[:digit:]]+)$" => "./xe/index.php?document_srl=$1",
  "^/xe/([[:digit:]]+)/([a-zA-Z0-9_]+)$" => "./xe/index.php?document_srl=$1&act=$2",
  "^/xe/([[:digit:]]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$" => "./xe/index.php?document_srl=$1&act=$3&key=$2",
  "^/xe/([a-zA-Z0-9_]+)/([[:digit:]]+)$" => "./xe/index.php?mid=$1&document_srl=$2",
  "^/xe/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$" => "./xe/index.php?mid=$1&act=$2",
  "^/xe/([a-zA-Z0-9_]+)/page/([[:digit:]]+)$" => "./xe/index.php?mid=$1&page=$2",
  "^/xe/([a-zA-Z0-9_]+)/category/([[:digit:]]+)$" => "./xe/index.php?mid=$1&category=$2",
  "^/xe/([a-zA-Z0-9_]+)/category/([[:digit:]]+)/page/([[:digit:]]+)$" => "./xe/index.php?mid=$1&category=$2&page=$3",
  "^/xe/([a-zA-Z0-9_]+)/([[:digit:]]+)/([[:digit:]]+)$" => "./xe/index.php?mid=$1&search_target=regdate&search_keyword=$2$3",
  "^/xe/([a-zA-Z0-9_]+)/([[:digit:]]+)/([[:digit:]]+)/([[:digit:]]+)$" => "./xe/index.php?mid=$1&search_target=regdate&search_keyword=$2$3$4",
  "^/xe/([a-zA-Z0-9_]+)/tag/(.*)$" => "./xe/index.php?mid=$1&search_target=tag&search_keyword=$2",
  "^/xe/([a-zA-Z0-9_]+)/writer/(.*)$" => "./xe/index.php?mid=$1&search_target=nick_name&search_keyword=$2",
  "^/xe/([a-zA-Z0-9_]+)(/){0,1}$" => "./xe/index.php?mid=$1"
)

Lighttpd 추가 설정

http://www.elkha.kr으로 접속하면 주소가 elkha.kr 으로 바뀌게 됩니다.
이처럼 항상 www를 빼거나, 혹은 붙이도록 설정할 수 있습니다.

# www 뺄 경우
$HTTP["host"] =~ "^www.elkha.kr$" {
  url.redirect = ( "^/(.*)" => "http://elkha.kr/$1" )
}

# www 넣을 경우
$HTTP["host"] =~ "^elkha.kr$" {
  url.redirect = ( "^/(.*)" => "http://www.elkha.kr/$1" )
}

저처럼 VPS(가상 호스팅)사용자는 가상 아이피를 사용합니다.
서버에 찍히는 아이피를 정상적으로 출력하기 위해 Apache 에서 rpaf_module 모듈을 사용한 것처럼, Lighttpd 에는 mod_extforward 라는게 있습니다.

extforward.forwarder = (
   "61.251.165.104" => "trust",
   "61.251.165.105" => "trust"
)

기타..

내용 추가2010년 5월 18일 화요일

갑자기 서버의 에디터가 맛이 가는 상황이 발생했다. 원인은 모르고 이것저것 죽어라 삽질만 하던 중, compress 관련 모듈을 발견했다. 이 모듈을 건드리니까 에러가 해결되고 서버 속도가 더 빨라졌다 히히히

compress.cache-dir         = "/tmp"
compress.filetype          = ("text/plain", "text/html")

번호 제목 날짜 조회 수
21 Table 태그 file 2010.05.23 4440
20 포커스 요소의 테두리와 웹 접근성 file 2010.05.23 4179
19 리눅스 자동 시작 file 2010.05.21 15892
18 putty file 2010.05.21 13464
17 php 에서 파일 권한 설정 2010.05.21 4593
16 list-style file 2010.05.21 5154
15 jQuery 쿠키 file 2010.05.19 5016
14 php 쿠키 생성, 읽기 file 2010.05.19 7103
13 php 에서 텍스트 파일을 생성, 수정하기 file 2010.05.19 9922
12 파일 불러오기 file 2010.05.17 5471
11 php 암호화와 복호와 file 2010.05.17 7305
10 php 현재 시각 출력하기 file 2010.05.17 4458
9 html 파일에서 php 구문 숨기기 file 2010.05.17 6860
8 검색엔진 등록 file 2010.05.12 142340
7 VPS (가상 호스팅) 비교 file 2010.05.12 62200
6 sAPM file 2010.05.12 20260
» Lighttpd 설치 file 2010.05.11 20677
4 Zend Optimizer + eAccelerator + Suhosin file 2010.05.11 18247
3 PHP 설치 file 2010.05.11 15056
2 Apache 설치 file 2010.05.11 16656