Не полностью отдается файл клиенту
ingtar
nginx-forum на forum.nginx.org
Пт Июн 2 07:06:08 UTC 2017
Добрый день!
Столкнулся с непонятной проблемой. Имеется сервер для раздачи файлов
клиентам. При большом кол-ве запросов иногда начинают происходить следующие
вещи на стороне клиента - скачиваемый файл (через curl) отдается меньшего
размера но ответ 200
В утилите siege при 100 конкурентных пользователях выглядит так:
HTTP/1.1 200 26.85 secs: 13925686 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 27.62 secs: 13925686 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 28.38 secs: 13925686 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 29.20 secs: 13925686 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 29.96 secs: 13925686 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 30.79 secs: 13925686 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 31.54 secs: 13925686 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 91.80 secs: 11313152 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 91.82 secs: 249483 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 91.84 secs: 270971 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 91.86 secs: 257541 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 91.88 secs: 265599 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
HTTP/1.1 200 91.89 secs: 262913 bytes ==> GET
/test/212879312926726118532324622460834138521.xml
Как видно из времени ответа - он начинает держать клиента и потом закрывает
коннект с 200 кодом.
Дебаг лог мне не помог, могу его приложить но он очень большой и найти
именно проблемный коннект не получилось
Конфиг очень большой, но вот урезанный вариант с локейшеном
server {
listen 80 default_server;
listen 443 ssl http2;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH
EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
keepalive_timeout 40 40;
keepalive_requests 500;
ssl_certificate_key example.key;
ssl_certificate example.crt;
error_log /var/log/nginx/error.log debug;
access_log /var/log/nginx/access.log;
add_header Cache-Control 'public, max-age=315360000';
add_header Expires 'Tue, 15 Nov 2986 11:00:00 GMT';
location /test/ {
error_log /var/log/nginx/test-error.log;
access_log off;
root /var/local/storage/ru;
rewrite '^/test/([0-9]*)(\d{2})(\d{2})(\d{2})\.(xml|xls|xlsx|xlsm)'
/test/$4/$3/$2/$1$2$3$4.$5 break;
}
}
В какую сторону можно посмотреть?..
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,274594,274594#msg-274594
Подробная информация о списке рассылки nginx-ru