oicfar
Lt. Commander
- Registriert
- Juni 2020
- Beiträge
- 1.900
Hi,
gestern habe ich schon viele Stunden damit verbracht rauszubekommen, wieso meine Cache Konfiguration in Nginx nicht greift. Finde aber keine Lösung.
Konfiguration:
Die URL sieht wie folgt aus: http://server/proxytest/1111?size=100
Das Bild wird skaliert zurück geliefert. D.h. das funktioniert. Aber in /var/cache/nginx_gitea/ werden keine skalierten Bilder abgelegt. Und in der Response ist X-Cache und X-Cache-Status nicht vorhanden, da beide leer sind. Und leere Header-Elemente werden nicht gesendet. Man sieht an X-Debug-Header, dass $upstream_cache_status leer ist.
Schon durch die Skalierung ist mein ursprüngliches Problem gelöst.
Aber wieso greift das Caching nicht?
gestern habe ich schon viele Stunden damit verbracht rauszubekommen, wieso meine Cache Konfiguration in Nginx nicht greift. Finde aber keine Lösung.
Konfiguration:
Code:
user nginx;
...
load_module modules/ngx_http_image_filter_module.so;
...
http {
...
proxy_cache_path /var/cache/nginx_gitea/ levels=1:2 keys_zone=mylocal_cache:10M max_size=1G inactive=2d use_temp_path=off;
...
map $request_uri $width {
default 28;
~\?size=512 512;
~\?size=420 420;
~\?size=280 280;
~\?size=140 140;
~\?size=100 100;
~\?size=84 84;
~\?size=72 72;
~\?size=56 56;
~\?size=48 48;
~\?size=45 45;
~\?size=40 40;
~\?size=28 28;
~\?size=24 24;
}
include /etc/nginx/conf.d/*.conf;
}
Code:
server {
...
location ~ "^/proxytest/(?<image>[0-9a-f]+)$" {
alias /usr/share/nginx/proxytest/$image;
proxy_cache_key "$image$width";
proxy_cache mylocal_cache;
proxy_cache_valid any 60m;
add_header X-Avatar-Filename $image;
add_header X-Avatar-Width $width;
add_header X-Debug-Header "Testing X-Proxy-Cache: [$upstream_cache_status]";
add_header X-Cache $upstream_cache_status;
add_header X-Cache-Status $upstream_status;
add_header Cache-Control "public, max-age=600";
image_filter test;
#image_filter_buffer 10M;
image_filter_jpeg_quality 75;
image_filter resize $width -;
image_filter_buffer 1M;
access_log /var/log/nginx/gitea_avatars.access.log;
error_log /var/log/nginx/gitea_avatars.error.log error;
}
...
}
Die URL sieht wie folgt aus: http://server/proxytest/1111?size=100
Das Bild wird skaliert zurück geliefert. D.h. das funktioniert. Aber in /var/cache/nginx_gitea/ werden keine skalierten Bilder abgelegt. Und in der Response ist X-Cache und X-Cache-Status nicht vorhanden, da beide leer sind. Und leere Header-Elemente werden nicht gesendet. Man sieht an X-Debug-Header, dass $upstream_cache_status leer ist.
Schon durch die Skalierung ist mein ursprüngliches Problem gelöst.
Aber wieso greift das Caching nicht?