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;