Am o configurare a serverului Nginx (openresty) care are fișiere mari.
Când un client dorește un fișier interval, Nginx trimite 200 înapoi în loc de 206.
Acesta este exemplul testului meu de bucle:
curl -v -I -r 0- -X GET http://172.29.22.11/myBigFile.bin
* Încercând 172.29.22.11:80...
* TCP_NODELAY setat
* Conectat la 172.29.22.11 (172.29.22.11) portul 80 (#0)
> GET /myBigFile.bin HTTP/1.1
> Gazdă: 172.29.22.11
> Interval: octeți=0-
> User-Agent: curl/7.68.0
> Accept: */*
>
* Marcați pachetul ca nu acceptă mai multe utilizări
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Transfer-Coding: fragmentat
Transfer-Codificare: fragmentat
< Conexiune: păstrați-vă în viață
Conexiune: păstrați-vă în viață
< Expiră: miercuri, 21 decembrie 2022 09:10:00 GMT
Expiră: miercuri, 21 decembrie 2022 09:10:00 GMT
< Cache-Control: max-age=31536000
Cache-Control: max-age=31536000
< Access-Control-Allow-Heaters: *
Acces-Control-Allow-Heaters: *
< Acces-Control-Permite-Origine: *
Acces-Control-Permite-Origine: *
< myCacheStatus: HIT
myCacheStatus: HIT
< Pragma: public
Pragma: public
< Cache-Control: public
Cache-Control: public
<
* Exces găsit: exces = 448 url =/myBigFile.bin A (corp cu lungime zero)
* Conexiunea #0 la gazda 172.29.22.11 a rămas intactă
Cum pot defini Nginx să returneze 206 corect în acest sens?
----- Adăugarea configurației mele -----
Locație / {
intern;
proxy_cache my_cache;
proxy_cache_key $uri;
# setați timpul de ceching pentru 200 de răspunsuri -> la 7 zile
proxy_cache_valid 200 7d;
# Ștergeți steagurile pe care nu le vreau
more_clear_headers 'Acces-Control-Allow-Heaters';
more_clear_headers „Acces-Control-Allow-Origin”;
more_clear_headers 'acces*';
more_clear_headers „dispoziție de conținut”;
more_clear_headers „Data”;
more_clear_headers 'x-proxy-cache';
more_clear_headers 'Server';
# adăugați anteturi pentru a gestiona CORS
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Allow-Origin '*';
# pentru a reduce bandwisth folosesc compresia
gzip on;
# configurați proxy-ul și instruiți-l să cech, chiar dacă nu există Cache-Control
proxy_ignore_headers X-Accel-Expires Expira Cache-Control;
proxy_cache_lock activat;
proxy_cache_lock_timeout 0s;
proxy_cache_lock_age 200 de ani;
actualizare proxy_cache_use_stale;
# rulează proxy invers
proxy_pass http://0.0.0.0:3000;
# setați ceching local pe partea clientului, în prezent, vom începe la 365 de zile
expiră 365d;
add_header Pragma public;
add_header Cache-Control „public”;
}