반응형
압축을 지원하지 않는 org3 구성
server {
listen 80;
server_name org3.t.skcdn.com org3 ;
access_log /var/log/nginx/org3.log my_log;
add_header Cache-Control 'max-age=120';
location / {
root /usr/share/nginx/html/;
}
}
relay에 압축설정 및 org3으로 upstream구성
# gzip config
gzip on;
gzip_types application/vnd.apple.mpegurl text/plain text/css application/json application/x-javascript text/javascript;
gzip_min_length 100;
gzip_http_version 1.1;
gzip_buffers 16 8k;
gzip_comp_level 4;
gzip_static on;
# brotli config
brotli on;
brotli_static on;
brotli_comp_level 11;
brotli_types application/vnd.apple.mpegurl text/plain text/css application/json application/x-javascript text/javascript;
brotli_min_length 100;
brotli_buffers 16 8k;
location / {
proxy_pass http://org3;
}
(테스트) 원본은 압축을 지원하지 않으나 relay에서 압축해 client에 전달, 응답은 Plain, Cachekey는 gzip으로 저장됨
# curl org3/1.json -H "accept-encoding: gzip" -I
HTTP/1.1 200 OK
Server: nginx/1.25.4
Date: Sat, 27 Apr 2024 17:23:14 GMT
Content-Type: application/json
Content-Length: 4346
Last-Modified: Wed, 21 Feb 2024 06:27:24 GMT
Connection: keep-alive
ETag: "65d597cc-10fa"
Cache-Control: max-age=120
Accept-Ranges: bytes
# curl relay/1.json -H "accept-encoding: gzip" -I
HTTP/1.1 200 OK
Server: nginx/1.25.4
Date: Sat, 27 Apr 2024 17:28:06 GMT
Content-Type: application/json
Connection: keep-alive
Vary: Accept-Encoding
Last-Modified: Wed, 21 Feb 2024 06:27:24 GMT
ETag: W/"65d597cc-10fa"
Cache-Control: max-age=120
X-CACHE-STATUS: MISS
Content-Encoding: gzip
# head -n 15 /var/cache/nginx/3/1a/88e8b9e64fbc7833d180cdb7a6e251a3
6-f̗▒e▒5-fSʪ▒gz"65d597cc-10fa"
KEY: relay/1.jsongzip
HTTP/1.1 200 OK
Server: nginx/1.25.4
Date: Sat, 27 Apr 2024 17:28:06 GMT
Content-Type: application/json
Content-Length: 4346
Last-Modified: Wed, 21 Feb 2024 06:27:24 GMT
Connection: keep-alive
ETag: "65d597cc-10fa"
Cache-Control: max-age=120
Accept-Ranges: bytes
두번 요청하면 HIT됨 (gzip되지 않은 contents가 HIT됨)
# curl relay/1.json -H "accept-encoding: gzip" -I
HTTP/1.1 200 OK
Server: nginx/1.25.4
Date: Sat, 27 Apr 2024 17:31:55 GMT
Content-Type: application/json
Connection: keep-alive
Vary: Accept-Encoding
Last-Modified: Wed, 21 Feb 2024 06:27:24 GMT
ETag: W/"65d597cc-10fa"
Cache-Control: max-age=120
X-CACHE-STATUS: HIT
Content-Encoding: gzip
'nginx' 카테고리의 다른 글
원본 압축관련 최종 nginx proxy설정 (0) | 2024.04.29 |
---|---|
gzip 최대 압축지원 (0) | 2024.04.29 |
gunzip을 사용해 Cache key절약 (0) | 2024.04.29 |
accept-encoding nomalization (0) | 2024.04.29 |
nginx gzip, brotli (ngx_gzip, ngx_brotli) 설정 (0) | 2024.04.29 |