ngx_http_headers_module

ngx_http_headers_module 모듈을 사용하면 “Expires” 및 “Cache-Control” 헤더 필드와 임의의 필드를 응답 헤더에 추가할 수 있습니다.

예제 구성

expires    24h;
expires    modified +24h;
expires    @24h;
expires    0;
expires    -1;
expires    epoch;
expires    $expires;
add_header Cache-Control private;

Directives

Syntax:  add_header name value [always];
Default: —
Context: http, server, location, if in location

응답 코드가 200, 201(1.3.10), 204, 206, 301, 302, 303, 304, 307(1.1.16, 1.0.13) 또는 308(1.13.0)일 때 지정된 필드를 응답 헤더에 추가합니다. 매개변수 값은 변수를 포함할 수 있습니다.

add_header 명령을 여러 개 사용할 수 있습니다. 이 명령은 현재 수준에서 정의된 add_header 명령이 없을 경우에만 이전 구성 수준에서 상속합니다.

always 매개변수를 지정한 경우(1.7.5), 응답 코드와 관계없이 헤더 필드를 추가합니다.

Syntax:  add_trailer name value [always];
Default: —
Context: http, server, location, if in location
This directive appeared in version 1.13.2.

응답 코드가 200, 201, 206, 301, 302, 303, 307 또는 308일 때 지정된 필드를 응답 끝에 추가합니다. 매개변수 값은 변수를 포함할 수 있습니다.

add_trailer 명령을 여러 개 사용할 수 있습니다. 이 명령은 현재 수준에서 정의된 add_trailer 명령이 없을 경우에만 이전 구성 수준에서 상속합니다.

always 매개변수를 지정한 경우 응답 코드와 관계없이 지정된 필드를 추가합니다.

Syntax:  expires [modified] time;
         expires epoch | max | off;
Default: expires off;
Context: http, server, location, if in location

응답 코드가 200, 201(1.3.10), 204, 206, 301, 302, 303, 304, 307(1.1.16, 1.0.13) 또는 308(1.13.0)일 때 “Expires” 및 “Cache-Control” 응답 헤더 필드를 추가하거나 수정하는 작업을 활성화하거나 비활성화합니다. 이 매개변수는 양수 또는 음수인 시간 값을 사용합니다.

“Expires” 필드의 시간은 현재 시간과 이 명령에서 지정된 time의 합계로 계산됩니다. modified 매개변수를 사용할 경우(0.7.0, 0.6.32) 시간은 파일의 수정 시간과 이 명령에서 지정된 time의 합계로 계산됩니다.

또한, “@” 접두사를 사용하여 하루 중 시간을 지정할 수 있습니다(0.7.9, 0.6.34).

expires @15h30m;

“Cache-Control” 필드의 내용은 지정된 시간의 기호에 따라 달라집니다.

  • 시간이 음수인 경우 — “Cache-Control: no-cache”.
  • 시간이 양수이거나 0인 경우  — “Cache-Control: max-age=t“. 여기서 t는 이 명령에서 지정된 시간(초)입니다.

epoch 매개변수는 “Expires”를 “Thu, 01 Jan 1970 00:00:01 GMT” 값으로 설정하고, “Cache-Control”을 “no-cache”로 설정합니다.

max 매개변수는 “Expires”를 “Thu, 31 Dec 2037 23:55:55 GMT” 값으로 설정하고, “Cache-Control”을 10년으로 설정합니다.

off 매개변수는 “Expires” 및 “Cache-Control” 응답 헤더 필드를 추가하거나 수정하는 작업을 비활성화합니다.

마지막 매개변수 값에는 변수를 포함할 수 있습니다(1.7.9).

map $sent_http_content_type $expires {
    default         off;
    application/pdf 42d;
    ~image/         max;
}

expires $expires;