циклический ресет при закачке файлов
Vladimir Fursin
fursin at optima.ua
Tue Mar 31 10:43:16 MSD 2009
Здравствуйте!
Для раздачи мультимедийного контента используется следующая
конфигурация - nginx в режиме прокси + апач, выполняющий
в PHP задачу авторизации. Если авторизация успешна, управление
возвращается в nginx, который через internal location отдает файл
клиенту.
Просматривая логи nginx обнаружил многократно повторяющиеся
записи скачивания с одного и того же URL, одним и тем же клиентским
IP, одной и той же длины. Пример :
2009-03-29T04:49:00+0300 XX.XX.XX.XX - - [29/Mar/2009:04:48:59
+0300] "GET /fetch/mp3/hch...Wbg==/kreschenie.mp3 HTTP/1.1" 200 33396
"Mozilla/4.0(compatible; MSIE 5.00; Windows 98)"
Такого вида записи в логах повторяются с интервалом 1-2 сек и
могут составлять до 30% всех записей лога! С одного и того же
клиентского адреса такие повторяющиеся запросы могут идти сутками.
Причем это не один клиент, таких много - с разных сетей при доступе
на сервера в разных городах, т.е. явление массовое.
Пытался смотреть на то, что происходит, tcpdump'ом - видно, что
после клиентского GET-запроса сервер отвечает HTTP-заголовком,
начинает передавать содержимое файла и после второго посланного
пакета клиент присылает FIN и RST, после чего все повторяется заново.
Кто нибудь сталкивался с подобным? Благодарен за любую подсказку -
куда копать?
P.S. nginx 0.6.35, fedora c 5-ой по 8-ую
Конфиг:
worker_processes 8;
worker_rlimit_nofile 8192;
events {
worker_connections 2048;
}
http {
include mime.types;
default_type application/octet-stream;
access_log logs/access.log combined;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name example.com;
rewrite ^/fetch/mp3/(.*)$ /nginx.php?path=$remote_addr-$1 last;
error_page 404 /404.html;
location = /404.html {
root html;
}
location /home {
root html;
}
location / {
proxy_pass http://127.0.0.1:8888;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 16k;
proxy_busy_buffers_size 32k;
proxy_temp_file_write_size 32k;
}
location /data-5 {
root /;
internal;
}
}
}
С уважением, Владимир.
--
mailto:fursin at optima.ua
More information about the nginx-ru
mailing list