mod_expire 적용하기


1.     Lighttpd expire 기능을 사용하기 위해서는 먼저 lighttpd.conf를 수정해줘야 합니다.

#vi /etc/lighttpd/lighttpd.conf

2.     mod_expire 의 주석을 제거

server.modules = (

                           “mod_expire”,

#                          “mod_redirect”,

#                          “mod_alias”,

……

)

3.    패턴을 설정


            images 디렉토리에 모든 파일에 expires 태그를 제공하기 위한 코드라인은 다음과 같다.

                expire.url = ( "/images/" => "access 1 hours" )

            그리고 images 디렉토리의 서브디렉토리에 대해 제공하고자 하는 경우는 다음과 같다.

                $HTTP["url"] =~ "^/images/" {
                     expire.url = ( "" => "access 1 hours" )
                }

            파일 타입에 대해 제공하는 것도 가능하다.

                $HTTP["url"] =~ "\.(jpg|gif|png|css|js)$" {
                     expire.url = ( "" => "access 1 hours" )
                }

        

        parse

        '(access|now|modification) [plus] {<num> <type>}*'

        the rest is just <number> (years|months|weeks|days|hours|minutes|seconds)

            e.g. 'access 1 years'


--------------------------------------------------

고려사항 :

송효진 님의 글:모든 버전의 IE 에서 새로고침은 페이지 내의 모든것을 새로 가져온다는 의미입니다.
expire 가 한달이건 두달이건 받아놓은 캐시를 무시하고 새로 가져오죠.


IE도 마찬가지 입니다.
그냥 F5(새로고침)인 경우 화면 렌더링만 갱신하고, Ctrl+F5를 눌러야 캐시를 무시하고 페이지내의 정보를 갱신합니다.

 

문제 정리 :

FF 의 경우 새로운 창을 열게 되면 서버측에서 새로 적용된 정보로 업데이트한다. 즉 새로 페이지를 읽어들여 열게 된다.

IE의 경우 Cache로부터 창을 열게 되므로 서버측에서 새로 적용한 정보를 업데이트하지 못한다.

F5를 눌러 새로운 페이지가 되도록 할 경우에만 적용된다.



흠... Apache 에서는 서버의 변경에 대해 클라이언트에 바로 적용하도록 한다고 하던데.. lighttpd는 아직 제공되지 않는게 맞나?
아님 적용되고 있는데.. 내가 아직 모르는 걸까? -_-a

 

by sopia | 2009/07/06 20:25 | LIGHTTPD | 트랙백 | 덧글(1)
mod_rewrite 적용하기

모듈의 적용은 다음과 같은 형태로 이루어진다.

mod_rewrite 를 정리함으로써 모듈의 사용설정 방법을 알아 본다.

1.     Lighttpd rewrite 기능을 사용하기 위해서는 먼저 lighttpd.conf를 수정해줘야 합니다.

#vi /etc/lighttpd/lighttpd.conf

2.     mod_rewrite 의 주석을 제거

server.modules = (

                           “mod_rewrite”,

#                          “mod_redirect”,

#                          “mod_alias”,

……

)

3.     url.rewrite 주석을 제거하고 패턴을 설정

#### url handling modules (rewrite, redirect, access)

url.rewrite                = ( "^/$"             => "/server-status" )

url.redirect               = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )

 

패턴 설정법은 "lighttpd 정규표현 및 대체패턴"을 참조하시기 바랍니다.

 

by sopia | 2009/07/06 20:17 | LIGHTTPD | 트랙백 | 덧글(0)
lighttpd 의 정규표현 및 대체 패턴

정규표현 (Regular Expression’s)

l  Patterns(“wildcards”) are matched against a string

l  정상적인 영숫자 문자는 정상적으로 처리

l  특수 문자 (Speical characters) :

.(full stop) - 일치하는 문자

*(asterisk) – 이전의 심볼에 대해 0개 또는 하나 이상 일치

+(plus) – 이전의 심볼에 대해 하나 또는 하나 이상 일치

?(question) – 이전의 심볼에 대해 0개 또는 하나 일치

\?(backslash-something) – 일치하는 특수 문자

^(caret)  일치하는 문자열의 시작

$(dollar) – 일치하는 문자열의 끝

[set] – 괄호 내부의 심볼 중 하나와 일치

(pattern) – 그룹핑, 기억의 패턴과 일치하는 어떤 특별한 변수

{n, m} –  이전문자가 n부터 m까지의 타임스와 일치하는가 (>= n m의 생략을 의미)

 

대체 패턴 (Replacement Patterns)

%% => %서명

%0 => 도메인명 + tld(최상위 레벨 도메인, .com 또는 .net)

%1 =>tld

%2 => tld 없는 오메인 네임

%3 => 하위 도메인의 첫번째 이름

%4 => 하위 도메인의 두번째 이름

 

형식

url.rewrite-once = ( “^/id/( [0-9] + )$” => “/index.php?id=$1”,

                                   “^/link/([a-zA-Z] + )” => “/index.php?link=$1”)

예제

       http://localhost/id/1234 = (redirect) => http://localhost/index.php?id=1234

             http://localhost/link/test = (redirect) => http://localhost/index.php?link=test
by sopia | 2009/07/06 20:14 | LIGHTTPD | 트랙백 | 덧글(0)
lighttpd 의 모듈

아래의 모듈을 다 한번씩은 다뤄봐야 하겠지만....
뭐 우선순위를 두고 봐야 할거 같다.. 한번에 확 알면 좋겠지만.. ㅋㅋ

기본 모듈 :

·         mod_accesslog - Accesslog : access log/error log

·         mod_userdir - User Directories : ~user 사용 가능 하게 한다

·         mod_dirlisting - Directory Listings : index.html 없을 때 디렉토리 리스트가 나오게 한다

·         mod_status - Server Status : /server-status /server-config 등의 서버 상태 확인 페이지

URL 처리 관련 모듈 :

·         mod_alias : alias

·         mod_redirect : 다른페이지로 redirect

·         mod_rewrite : 다른 페이지를 현재 주소에

·         mod_proxy - Proxy : 프록시 모듈, load balancing 기능도 제공(hash/round-robin/fair)

보안 모듈 :

·         mod_access : 특정 URL 접근 제한

·         mod_auth : 인증 모듈

연동 모듈 :

·         mod_cgi : shell cgi/perl cgi

·         mod_fastcgi : fastcgi를 지원하는 PHP 등 연결. 원격 서버 연결 지원, 기본적인 load balancing 지원

·         mod_webdav : WebDAV 프로토콜. 파일 다운로드/업로드/락걸기 등.

·         mod_extforward - Rewriting the X-Forwarded-For header

·         mod_scgi - fastcgi와 유사. Python  + WSGI 지원

·         mod_ssi - Server Side Includes :

퍼포먼스 향상 모듈 :

·         mod_cache : 요청한 내용 파일로 캐싱

·         mod_mem_cache : 요청한 내용 메모리에 캐싱

·         mod_expire : Expire 값 조정. (이미지등 재요청 오랫동안 안하게)

·         mod_compress : 내용 압축해서 보내기 (캐시 파일로 저장)

·         mod_secdownload : URL 암호화, 타임아웃

·         mod_trigger_b4_dl : 특정 URL 방문후 다운로드 가능하도록

·         mod_cml : cache meta language (mod_magnet이 대체)

·         mod_magnet :mod_cml 대신 새로나온 모듈. request 처리 로직 변경할 수 있음. 헤더/페이지 조회/수정. Lua 언어로 프로그래밍 가능.

o    1.5.0 이후에 좀더 많은 동적 서버 설정을 제공할 것이다. Comet (Ajax의 한 종류, 새로운 데이터가 있을 때 서버가 클라이언트를 업데이트한다.) 에 대한 지원은 웹 대쉬보드나 채팅, 혹은 다른 상당히 인터랙티브한 어플리케이션들을 가지고 있다 

Virtual Hosting : 설정 파일만으로도 설정 가능

·         mod_simple_vhost - Simple Virtual Hosting

·         mod_evhost - Enhanced Virtual Hosting

·         mod_mysql_vhost - MySQL virtual hosting

기타 :

·         mod_evasive : IP별 연결수 제한

·         mod_flv_streaming : FLV(Flash Video) Streaming

·         mod_geoip - IP based Country/City lookup : IP별로 나라/도시 조회

·         mod_rrdtool - rrdtool : 데이타를 시간별로 저장 - 나중에 그래프로 그릴수 있도록 해줌

·         mod_setenv : 환경변수. Request 헤더, Response 헤더 정보를 추가/수정할수 있음

·         mod_useronline : IP별 온라인 사용자수 계산. $_ENV['USERS_ONLINE']에 저장.

·         mod_usertrack : 사용자별 쿠키 할당


Lighttpd 1.5
에서부터 지원하는 사항             

·         mod_deflate - Dynamic Compression : 압축모듈 mod_compress와 거의 같지만 파일 저장은 안함

·         mod_proxy_core - Proxy http/fastcgi/scgi - fastcgi/proxy 모듈을 대체할 새 모듈. lighttpd 1.5 모듈의 가장 핵심 기능.          

·         mod_uploadprogress : 업로드 중인 파일에 대해서 상황을 조회할수 있는 URL 제공.


by sopia | 2009/07/06 20:11 | LIGHTTPD | 트랙백 | 덧글(3)
지원언어 및 인코딩

Content-Type 의 charset 은 인코딩을 나타낸다.
Content-Language
content RFC 1766에서 정의한 바와 같이 각 언어를 알파벳 두 글자로 줄인 약어를 콤마로 구분하여 나열한다.


<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1;">

<META http-equiv="Content-Language" content="en">
 

 

1 지원언어 및 인코딩

지원 언어

language

인코딩

charset

확인여부

한국어

Korean

UTF-8, EUC-KR, ISO-2022-KR

EUC-KR

O

일본어                   

Japanese

UTF-8, EUC-JP, ISO-2022-JP, Shift-JIS, SJIS-2004 (JISX0213)

 

 

중국어간체자

Chinese(Simplified)

UTF-8, GB-18030, GB-2312, HZ-GB-2312, ISO 2022-CN

 

 

중국어번체자

Chinese(Traditional)

UTF-8, Big5, Big5-HKSCS

 

 

영어

English

UTF-8, Windows-1252, ISO-8859-1

ISO-8859-1

O

Malay-램어

 

UTF-8, ISCII

 

 

그쟈라티어

 

UTF-8, ISCII

 

 

네델란드어

Dutch

UTF-8, Windows-1252, ISO-8859-1

 

 

노르웨이어

Norwegian

UTF-8, Windows-1252, ISO-8859-1

 

 

덴마크어

Danish

UTF-8, Windows-1252, ISO-8859-1

 

 

독일어

German

UTF-8, Windows-1252, ISO-8859-1

 

 

라트비아어

Latvian

UTF-8, Windows-1257, ISO-8859-13

 

 

러시아어

Russian

UTF-8, Windows-1251, ISO 8859-5, IBM-866, KO18R, X-Mac-Cyrillic

 

 

루마니아어

Romanian

UTF-8, Windows-1250, ISO-8859-2

 

 

리투아니아어

Lithuanian

UTF-8, Windows-1257, ISO-8859-13

 

 

말레이어

 

UTF-8, Windows-1252, ISO-8859-1

 

 

베트남어

Vietnamese

VISCII, VPS, VIQR, TCVN, VNI

 

 

벵골어

 

UTF-8, ISCII

 

 

불가리아어

Bulgarian

UTF-8, Windows-1251, ISO-8859-5, KO18-R

 

 

세르비아어

Serbian

UTF-8, Windows-1251, ISO-8859-5

 

 

음역 세르비아어

 

UTF-8, Windows-1250, ISO-8859-2

 

 

소말리어

 

UTF-8, Windows-1252, ISO-8859-1

 

 


이어지는 내용
by sopia | 2009/07/06 19:54 | WEB | 트랙백 | 덧글(0)


<< 이전 페이지 다음 페이지 >>