웹마스터 팁

Lighttpd 설치

2010.05.12 23:45

김 무건

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"
)

기타..

http://elkha.kr/xe/3220

태그 연관 글
  1. [2020/12/09] 묻고답하기 rewrite 모듈에서 특수문자 를 제한하려고합니다. by 찐드기
  2. [2017/09/07] 묻고답하기 XE 설치 질문드립니다. by Marinesnow *2
  3. [2017/08/08] 묻고답하기 시놀로지 XE 설치시 DB 연결 실패 by outsider *4
  4. [2015/06/02] 묻고답하기 xe1.8.2 처음 설치하는데, 오류 by JnCsoft *9
  5. [2015/04/08] 묻고답하기 사용권 동의 다음으로 넘어갈 수가 없습니다! by mjs
제목 글쓴이 날짜
자신의 인터넷ISP 80포트 지원여부. [3] 해피보이 2010.04.08
페이지 모듈 사용시 여백 관련한 팁! sejin7940 2010.08.02
브라우저에 설치된 flash player의 version 알아 보기 [2] file 레미짱 2010.08.06
[최근 글 탭 형식 출력 위젯] 탭 제목이 브라우저 타이틀이 아닌 설명으로 나오게하기 [1] 소렌트. 2010.07.19
영영사전이 필요하십니까? 레미짱 2010.08.12
공지글 1페이지에만 보이기 [1] 러키군 2010.04.29
게시판 설정 중 ''게시판상세설명''에 table 태그 쓰면 깨지는 현상 sejin7940 2010.06.30
/home/*/public_html/xe 디렉토리에서 rewrite 적용안되는 현상 해결(.htaccess) [2] 소렌트. 2010.04.11
tip 아닌 tip -> xml로 만드는 query 이용 너무 어렵다면 .... [4] 푸하라 2010.02.10
게시판 본문페이지 닉네임 옆에 회원그룹명 사용 [4] file 늘푸른이 2010.08.13
댓글을 리스트에 출력하기 [1] 김성걸310 2010.10.07
Lighttpd 설치 file 김 무건 2010.05.12
목록에서 업데이트 된 글의 댓글수 bold표시하기 file 옥수수밭 2010.03.17
게시판 분류(카테고리)를 텍스트&이미지로 나열 하기 [11] Simulz 2007.08.29
글 작성후 작성한 글이 아닌 목록으로 이동하게 수정하기 (전체게시판 적용) [1] 도라란 2010.09.21
최신글 뽑아오기 - 간단한 방법 [3] file Eric2ya 2007.08.14
LNB위젯사용하지 않고 초간단 페이지 인식 메뉴 만들기 file 쥰지 2010.06.09
로그인/로그아웃 시 그페이지에 그대로 남아있게하기. [4] 롤리^^ 2010.09.16
DB 용량 확보하기 [6] 소렌트. 2010.10.26
큰 사이즈의 이미지 업로드시 섬네일 생성이 안되어 오류 발생하는 문제 예방법 도라란 2010.10.05