Проксирование файлов более 4Гб
Denis Zhdanov
Denis.Zhdanov at liga.ua
Thu Aug 13 15:32:06 MSD 2009
Привет всем!
Имеем nginx 0.7.61 на FreeBSD 6.2, который стоИт фронтендом перед апачем.
Помимо динамических страничек на апаче лежат несколько больших файлов, в
том числе несколько файлов более 4Гб (переложить файлы на фронтенд
затруднительно по ряду причин). Мелкие файлы отдаются нормально, а вот с
большими проблемы - при выключенной буферизации закачка сначала
останавливается, а потом обрывается по таймауту через некотрое количество
мегабайт. При этом в access.log - обычный файл с кодом возврата 200 -
192.168.7.6 - - [13/Aug/2009:13:43:37 +0300] "GET
/files/47ccdaf4dd87/dvd.iso HTTP/1.1" 200 178847744 "-" "Opera/9.64
(Windows NT 5.1; U; ru) Presto/2.1.1"
(сам dvd.iso при этом размером 4356636672 байт )
а в error.log - ничего.
При включенной буферизации работает нормально, но так как клиентов много и
они медленные, то /var/spool/nginx/proxy_temp растет катастрофически
быстро и за пару часов на /var кончается место. Буферами пробовал играться
- не помогает.
Проксирую так -
location ~*
\.cgi$|^/cgi-bin|^/check|^/download|^/index|^/files|^/beta {
auth_basic off;
proxy_buffering off;
proxy_pass http://192.168.201.7:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
Пока поставил костыль в виде rewrite этих больших файлов непосредственно
на апач на 8000 порт - но это некрасиво и не секурно.
Помогите плиз.
More information about the nginx-ru
mailing list