웹마스터 팁

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
제목 글쓴이 날짜
xe 에디터를 외부페이지에사용하기 [26] 정박사닷컴 2012.07.11
1.4 에서 1.5로 게시판 마이그레이션 팁 [12] file 마음의빈자리 2012.07.10
관리자 페이지 회원/회원설정 추가정보에 추가한 전화번호를 회원목록에 추가하기(수정) [1] 늘푸른이 2012.07.08
회원가입 이메일 수취 여부 선택 초기화 file 아모스리 2012.07.07
회원이 글 삭제하면 삭제하지 않고 글을 다른 게시판으로 보내기 [5] SCAC 2012.07.03
카르마님의 외부이미지 자동저장애드온 한글이미지 저장 [1] 패시브 2012.07.03
'신고 수' 노출 함수 및 신고시 게시글 이동팁 [11] 인터니즈™ 2012.07.03
게시판의 제목제거 file saladin 2012.07.02
1.5.x 사용자들 중에 IE9에서 셀렉트박스 목록이 안보일때 빽짱구 2012.06.30
XE사용 Mysql DB를 InnoDB로 바꿔봅시다 ※서버환경 사용자에 한함 [4] 흰색앵초 2012.06.30
Apache 2 prefork 와 worker 차이 [3] 데브위트™ 2012.06.26
관리자의 회원포인트목록 에서 ID/닉네임 등으로 검색하는 소스 추가 [3] sejin7940 2012.06.25
content위젯 제목 밑줄 게시판 제목의 색깔 변경방법 안내 [2] file saladin 2012.06.25
[140404] ISPconfig 호스팅 관리 패널 Luatic™ 2012.06.24
XE로 접속 장치 구분하기 (모바일, PC + 타블렛 PC) mobile class 이용. (PHP) (수정: 템플릿 추가) [19] misol 2012.06.24
XE 1.5 이상에서 모바일 페이지 별도 구성 원하는 경우 sejin7940 2012.06.23
상담용 게시판 - 확장 변수 이용 [4] file 어라얼랑 2012.06.23
첨부파일 증발되면 이 방법을 써보세요. [2] 쌘쓰쟁이 2012.06.23
관리자페이지 전체 댓글 리스트에서 추천/비추천수 안 나오는 버그 수정법 [2] sejin7940 2012.06.22
댓글 자꾸 끝페이지가 먼저 뜨는 것을 1페이지부터 뜨도록 수정 [2] 모노소프트 2012.06.19