ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

proxy_ignore_client_abort + internal location


  • To: nginx-ru@xxxxxxxxx
  • Subject: proxy_ignore_client_abort + internal location
  • From: Dmytro Sychevsky <dmytrosychevsky@xxxxxxxxx>
  • Date: Mon, 25 Jan 2010 11:44:59 +0200
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=Yq5oLoQYZzu4iiga1mhcEoQ1gEL+UYEV+cgyu/UmSD8=; b=cOGFSHzAEs/PZBUMHkv3bLPGmeNT5zoo3bgcOxYsmEUeSCLmhwZEBGG0T7uZQrGkkr HtaiDFHqGDoZA8ufb6xoq1YhVWco8ybaTZMJKA8LuFjlpFAAhkOsjEhHdqjDAuRJ8ZNb RcOP/U6DNaPsGROS6/j5asNcngXPQ0yAudFYk=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=dmRKu2ycqhRgYrcc2qIeNrjfYDe+jch54Xs7Qtykqenw7ZUTgWXhe41OLJFPkDnbKC q+J4JuoPgGJFMCfACq8hfVsK81mVuJO7j6ZsWaaQ8PHIrKsFGDQ24/zAsHrFLeSnLS0B TEiXTOXs7QpR7KHZ1BtPoXFRKSFGflWudLhUM=

Есть nginx который должен забирать с бэкэндов видео отдавать
пользователю и параллельно ложить это видео в локальный кэш - все это
реализовано на основе proxy_store (что бы можно было использовать flv
и mp4 модули) - все настроено и просто прекрастно работает и вот
захотелось бы ко всему этому счастью прикрутить X-Accel-Redirect -
прикрутил и вылезла одна неприятная вещь - если location помечен как
internal то proxy_ignore_client_abort совсем неработает - те тогда
когда отваливается медленный клиент файл перестает тянуться из бэкенда
- если internal убрать то все работает как часы - это баг или фича ?

пример конфига

 server {

        ..skiped..

                proxy_buffering                 on;
                proxy_ignore_client_abort       on;
                proxy_intercept_errors          on;


                location /video {
                        root   /path/toroot
                        index  index.html index.htm index.php;
                        if (!-e $request_filename) {
                                rewrite ^/video(.*)$ /index.php?$1 last;
                        }
                }

                location ~ \.php$ {

                        fastcgi_pass   fcgihost.com;
                        fastcgi_index  index.php;

                        fastcgi_param  SCRIPT_FILENAME
path/to/script/$fastcgi_script_name;
                        include         fastcgi_params;

                }

                location ~^\/vc(.+)\.m4v$ {

#                        internal;
                        try_files      $uri  @hdfs_fetch;

                        root                 /path/to/cache;
                        mp4;

                        limit_rate_after  1M;
                        limit_rate        48k;

                        location ~^\/vc(.+)\/1\.m4v$ {
#                                       internal;
                                       mp4;
                                       try_files      $uri  @hdfs_fetch;
                                       limit_rate_after 4M;
                                       limit_rate       350k;
                        }

                        location ~^\/vc(.+)\/2\.m4v$ {
#                                       internal;
                                       mp4;
                                       try_files      $uri  @hdfs_fetch;
                                       limit_rate_after 2M;
                                       limit_rate       96k;
                        }


                }



                location @hdfs_fetch {
                                       internal;

                                       proxy_pass
http://hadoop_HDFS$uri;
                                       proxy_store          on;
                                       proxy_store_access   user:rw
group:rw  all:r;
                                       proxy_temp_path      /path/to/cache;

                                       root                 /path/to/cache;;
               }
}

nginx version: nginx/0.8.32
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I
/usr/local/include' --with-ld-opt='-L /usr/local/lib'
--conf-path=/usr/local/etc/nginx/nginx.conf
--sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
--error-log-path=/var/log/nginx-error.log --user=www --group=www
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
--http-log-path=/var/log/nginx-access.log --with-http_flv_module
--with-http_gzip_static_module
--add-module=/usr/ports/www/nginx/work/nginx_mod_h264_streaming-2.2.7
--with-http_realip_module --with-http_stub_status_module --with-pcre

----------------------------------------------------------------------

Dmytro Sychevsky
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.